Как мне найти, чтобы получить любой div, который имеет идентификатор, который начинается с определенной строки - PullRequest
1 голос
/ 18 января 2010

У меня есть некоторый динамический код, который будет составлять список div. я хочу получить обратно список элементов для циклического прохождения, которые имеют идентификатор с тем же началом строки.

Например, у меня может быть

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

как, используя jquery, я могу получить список всех div, у которых есть идентификатор, начинающийся с "table"?

Ответы [ 4 ]

5 голосов
/ 18 января 2010

Для этого вы можете использовать селектор атрибута.

$("div[id^='table']")...

Вышеуказанное средство находит все div с идентификатором, который начинается с "table".

Как правило, вы хотите избегать селекторов атрибутов, где это возможно, поэтому, если вы собираетесь много заниматься этим, я бы предложил изменить ваш 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 голос
/ 18 января 2010
$("[id]").filter(function() {
    return this.id.match(/^table[0-9]+$/);
});

Возможно

1 голос
/ 18 января 2010
$('div[id^=table]')
1 голос
/ 18 января 2010
$('div[id^=table]')

Я думаю, что должен делать это по памяти. Он использует ^, как в регулярном выражении.

Так что вы никогда не выберете случайно больше, чем ожидаете, я бы добавил к этому больше специфичности. Например, у вас может быть

$('#my-table div[id^=table]')

Чтобы затем просмотреть их, используйте each()

    $('div[id^=table]').each(function() {
        $(this).append('<p>hello </p>');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...