在DOM中,ID不能用于“for”循环,因为ID只能在一个页面中使用一次,我该如何解决?

时间:2014-02-21 01:55:31

标签: javascript dom

我用

for(var i=0; i<hotelinresult.length; i++)

然后我的HTML是这样的:

<p id="hotelin-title" class="hotelin-title"><%= hotelinresult[i].title %></p>

我编写了一个函数setEllipsis(),通过使用<p>

使每个<p>getElementById('hotelin-title')的末尾都有...

BUT ...功能只出现在第一个数据中,我想这是因为ID ID只能在一个页面中使用一次。如何使我的函数在循环中工作而不是使用getElementById('hotelin-title')

2 个答案:

答案 0 :(得分:3)

您可以使用document.getElementsByClassName()返回可以迭代的HTML元素集合。您需要在要将代码应用到的每个元素上设置一个类。

<div class=ellipsis>Some text</div>
<div class=ellipsis>Some more text</div>

<script>
var els = document.getElementsByClassName('ellipsis');
for (var i=0; i<els.length; i++) {
  someFunction(els[i]);
}

</script>

答案 1 :(得分:1)

使用:

document.getElementsByClassName('hotelin-title')

ID只能在页面上使用一次

此外,使用jQuery会更容易。您可以通过以下方式访问所有元素:

$('.hotelin-title')