所以我有一个HTML列表
<ul>
<li id="item-foo"></li>
<li id="item-bar"></li>
<li id="zoop"></li>
</ul>
在Javascript中,我希望根据ID 获取一系列列表项。基本上,如果ID以item-
开头,那么我想在数组中获取它。
我这样做的第一种方法是循环遍历DOM中的所有项目,并将ID作为字符串并以这种方式匹配。还有更好的方法吗?
答案 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,那个选择器应该可以提供你想要的东西。