您的代码是正确的(假设 a });
),前提是您运行它时元素存在。在循环中,ar
将接收"CustomerScreen"
,然后"TraderScreen"
,然后"DistributorScreen"
。
请注意上面的附带条件。例如,这将按id
顺序显示这三个值:
<table>
<tbody>
<tr id="CustomerScreen" class="rows"></tr>
<tr id="TraderScreen" class="rows"></tr>
<tr id="DistributorScreen" class="rows"></tr>
</tbody>
</table>
<script>
$('.rows').each(function () {
var ar = this.id;
console.log(ar);
});
</script>
实例| 来源
...因为脚本位于文档中的元素之后。
相反,这不会显示任何内容:
<script>
$('.rows').each(function () {
var ar = this.id;
console.log(ar);
});
</script>
<table>
<tbody>
<tr id="CustomerScreen" class="rows"></tr>
<tr id="TraderScreen" class="rows"></tr>
<tr id="DistributorScreen" class="rows"></tr>
</tbody>
</table>
实例| 来源
...因为脚本位于元素之上,并且它们在运行时还不存在。
这就是为什么最好将脚本放在文档的最后,就在结束</body>
标记之前的原因之一。或者,如果您必须将脚本放在元素之上,您可以使用 jQueryready
事件:
<script>
$(function() {
$('.rows').each(function () {
var ar = this.id;
console.log(ar);
});
});
</script>
<table>
<tbody>
<tr id="CustomerScreen" class="rows"></tr>
<tr id="TraderScreen" class="rows"></tr>
<tr id="DistributorScreen" class="rows"></tr>
</tbody>
</table>
实例| 来源
jQuery 将在 DOM 加载后运行该函数。但这确实适用于库代码;对于您自己的页面代码,只需将脚本放在末尾即可。