我需要在span元素中获取文本。问题是它没有唯一的ID,只有一个类。有没有办法通过只知道它的类来检索这个元素中的文本?
我试过这段代码:
var theValue = document.getElementById('you').getElementsByClassName('username').innerHTML;
但是我收到了一个错误:
未捕获的TypeError:无法读取属性'getElementsByClassName'为null
HTML:
<div id="you">
<span class="username">theTextIShouldGet</span>
<a class="logout" href="/logout">
</a>
<a class="settings" href="/settings">
</a>
</div>
答案 0 :(得分:5)
您收到该错误是因为您在网页上加载该元素之前尝试访问该元素。将脚本移动到页面底部或将脚本包装在DOM就绪函数中。
至于按班级获取文字,当然! getElementsByClassName
会返回一个集合 - 因此您需要引用所需的索引:
<div id="you">
<span class="username">theTextIShouldGet</span>
<a class="logout" href="/logout">
</a>
<a class="settings" href="/settings">
</a>
</div>
<script>
var theValue = document.getElementById('you').getElementsByClassName('username')[0].innerHTML;
</script>