我有许多具有相同类名的标签,但它们都有不同的文字。我想循环遍历它们并获得此文本。
这就是我所拥有的:
<label class="mylabel pull-left"> Hello </label>
<label class="mylabel pull-left"> olleH </label>
.....
我试试这个:
<script>
var element = document.getElementsByClassName('mylabel');
for(var i = 0; i<element.length;i++) {
alert(element[i].text());
}
</script>
但是我收到了这个错误:
TypeError: element[i].text is not a function
我尝试alert(element[i].text)
,但只返回undefined
。
但是我可以使用alert(element[i].className)
获取其className,为什么我不能得到它的文本?
答案 0 :(得分:3)
javascript中没有text
函数。请尝试使用innerHTML
代替:
var element = document.getElementsByClassName('mylabel');
for(var i = 0; i<element.length;i++) {
alert(element[i].innerHTML);
}
<强> Fiddle Demo 强>
如果你使用jQuery,你可以像你正在尝试的那样使用 text() :
$.each($('.mylabel'), function() {
alert($(this).text());
})
<强> Fiddle Demo 强>
答案 1 :(得分:0)
这应该有用。
$('.mylabel').each(function() {
var x = $(this).text();
alert(x);
});
答案 2 :(得分:0)
问题:但我可以使用alert(element [i] .className)获取其className,为什么我不能获取其文本?
答案:您不再瞄准javascript
元素,只是对它的引用。如果您想获得更多jQuery
信息,则需要使用innerHTML
作为此功能。
使用jQuery selector $
更新您的用例。
<label class="mylabel pull-left"> Hello </label>
<label class="mylabel pull-left"> olleH </label>
var element = $('.mylabel');
for(var i = 0; i<element.length;i++) {
alert($(element[i]).text());
}
此外,您可以进一步缩短:
$('.mylabel').each(function() {
alert($(this).text());
});