如何进行查找以获取任何具有以某个字符串开头的id的div

时间:2010-01-18 01:35:26

标签: jquery css-selectors

我有一些动态代码可以生成一个div列表。我想找回一个循环的项目列表,其中包含一个具有相同字符串开头的id。

例如,我可能有

<div id="table1" . . .
<div id="table2" . . .
<div id="table3" . . .

如何使用jquery,我能获得一个id为以“table”开头的所有div的列表?

4 个答案:

答案 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]+$/);
});

也许?