我有一些动态代码可以生成一个div列表。我想找回一个循环的项目列表,其中包含一个具有相同字符串开头的id。
例如,我可能有
<div id="table1" . . .
<div id="table2" . . .
<div id="table3" . . .
如何使用jquery,我能获得一个id为以“table”开头的所有div的列表?
答案 0 :(得分:5)
您可以使用属性选择器。
$("div[id^='table']")...
上述方法找到id为以“table”开头的所有div。
一般情况下,您希望尽可能避免使用属性选择器,但是如果这将是您做了很多事情,我建议您更改HTML:
<div id="table1" class="table" . . .
<div id="table2" class="table" . . .
<div id="table3" class="table" . . .
所以你可以这样做:
$("div.table")...
会更快。
更新:您似乎已经(在评论中)询问了关于循环的问题。对于此用途each()
:
$("div[id^='table']").each(function() {
// `this` now refers to the current element
});
答案 1 :(得分:1)
$('div[id^=table]')
我认为应该从记忆中做到这一点。它使用^,就像正则表达式一样。
因此,你不会偶然选择更多,然后讨价还价,我会为它添加更多的特异性。例如,你可能有
$('#my-table div[id^=table]')
要循环浏览它们,请使用each()
$('div[id^=table]').each(function() {
$(this).append('<p>hello </p>');
});
答案 2 :(得分:1)
$('div[id^=table]')
答案 3 :(得分:1)
$("[id]").filter(function() {
return this.id.match(/^table[0-9]+$/);
});
也许?