Reputation: 9855
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
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
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