Javascript:按ID选择元素

时间:2013-10-27 16:36:52

标签: javascript jquery

所以我有一个HTML列表

<ul>
  <li id="item-foo"></li>
  <li id="item-bar"></li>
  <li id="zoop"></li>
</ul>

在Javascript中,我希望根据ID 获取一系列列表项。基本上,如果ID以item-开头,那么我想在数组中获取它。

我这样做的第一种方法是循环遍历DOM中的所有项目,并将ID作为字符串并以这种方式匹配。还有更好的方法吗?

4 个答案:

答案 0 :(得分:3)

正如其他答案所述,像[id^='item-']这样的jQuery选择器可以正常工作,但应该注意的是,不是只是jQuery的功能,而是一个DOM选择器,由W3C指定 换句话说,如果你不想包含像jQuery这样的单片工具包,那么你可以使用一些更特殊的选择器,只需写一下:

var itemIds = document.querySelectorAll("li[id^='item-']");

你在那里。
更重要的是,这将比jQ更快。 jQ永远无法匹配vanillaJS的速度。这里没有必要使用jQ,所以不要。 JQ可以让生活变得更轻松,更真实,但在这种情况下并非如此。选择器是相同的,因此您不需要jQ 所有jQ都会在这里做得很慢,并帮助你编写糟糕的代码......对不起......我需要把它从我的胸口拿走。

答案 1 :(得分:2)

jQuery中的正确选择器将是:

$('li[id^="item-"]')

答案 2 :(得分:1)

从这里使用选择器:var some_array = $("li[id^='item-']")http://api.jquery.com/attribute-starts-with-selector/

答案 3 :(得分:0)

$("[id^='item-'"]

如果你想使用jQuery,那个选择器应该可以提供你想要的东西。