0

所以我有一个 HTML 列表

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

在 Javascript 中,我想根据它们的 ID获取列表项的数组。基本上,如果 ID 以开头,item-那么我想将它放在一个数组中。

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

4

4 回答 4

3

正如在其他答案中所说,jQuery 选择器 like[id^='item-']可以正常工作,但应该注意,这不是jQuery 独有的功能,而是W3C指定的 DOM 选择器。
换句话说,如果您不想包含像 jQuery 这样的单一工具包,只是为了使用一些更特殊的选择器,只需编写:

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

而你在那里。
更重要的是,这将比 jQ 更快。jQ 在速度上永远无法与 vanillaJS 相提并论。你不需要在这里使用jQ,所以不要。JQ 可以让生活更轻松,这是真的,但在这种情况下并非如此。选择器是相同的,所以你不需要 jQ。
jQ 在这里所做的只是减慢您的速度,并帮助您编写糟糕的代码......对不起......我需要把它从我的胸膛中解脱出来。

于 2013-10-27T16:44:23.870 回答
2

jQuery 中正确的选择器是:

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

于 2013-10-27T16:38:16.490 回答
1

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

于 2013-10-27T16:38:41.757 回答
0

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

如果您想使用 jQuery,该选择器应该会为您提供所需的内容。

于 2013-10-27T16:38:34.250 回答