Liam
Liam

Reputation: 9855

Alert innerHTML of element with javascript

I'm trying to traverse a document and get the contents of an element thought I'm being returned undefined...

var el = document.querySelectorAll(".home .something .test");
var c = el.textContent;
alert(c);

https://jsfiddle.net/fevfymz1/

Can anybody see whats going wrong?

Upvotes: 0

Views: 1995

Answers (2)

ozil
ozil

Reputation: 7117

you need to use loop because document.querySelectorAll() returns an array.

var el = document.querySelectorAll(".home .something .test");
for (i = 0; i < el.length; i++) {
   alert(el[i].textContent);
}
//var c = el.textContent;

//alert(c);
<div class="home">
   <div class="something">
      <table>
         <tr>
            <td>asdasd</td>
         </tr>
         <tr>
            <td>
               <span class="test">Alert this</span>
            </td>
         </tr>
         <tr>
            <td>asdasd</td>
         </tr>
      </table>
   </div>
</div>

Upvotes: 0

Adam Azad
Adam Azad

Reputation: 11297

var c = el[0].textContent;

Because document.querySelectorAll() returns an array of matches

var el = document.querySelectorAll(".home .something .test");
var c = el[0].textContent;
alert(c);
<div class="home">
  <div class="something">
    <table>
      <tr>
        <td>asdasd</td>
      </tr>
      <tr>
        <td>
        <span class="test">Alert this</span>
        </td>
      </tr>
      <tr>
        <td>asdasd</td>
      </tr>
    </table>
  </div>
</div>

Upvotes: 2

Related Questions