Подтвердить что ты не робот

Выберите элементы с атрибутом id, который начинает/заканчивается с определенным значением

Можно ли использовать jQuery или JavaScript с регулярным выражением для выбора нескольких элементов с похожим идентификатором?

У меня есть следующие параграфы:

<p id="item5_2"> A </p>
<p id="item9_5"> B </p>
<p id="item14_2"> C </p>

Я хочу изменить содержимое абзацев с id начиная с item и заканчивая на 2.

Я использовал следующий jQuery:

$("#item[\d]*2").html("D");

но это не сработает. Как я могу заставить его работать?

JSFiddle Demo

4b9b3361

Ответ 1

Да, возможно, вы можете комбинировать атрибут начиная с, а атрибут заканчивается на селектор

$('[id^="item"][id$="2"]').html("D");

FIDDLE (и вы должны включить jQuery в скрипте)

вы не можете использовать регулярное выражение для соответствия числам между ними, для чего вам понадобится filter()

$('[id^="item"]').filter(function() {
    return this.id.match(/item\d+_2/);
}).html("D");

Ответ 3

Лучше всего использовать следующие селектора jQuery

^= is starts with
$= is ends with

=  is exactly equal
!= is not equal
*= is contains

Итак, в вашем случае:

var $items = $('[id^="item"][id$="2"]');

Ответ 4

Вы можете комбинировать селектора атрибутов: fiddle

$("[id^='item'][id$='2']").html("D");

Ответ 5

Попробуйте это

 <p id="item5_2"> A </p>
 <p id="item9_5"> B </p>
 <p id="item14_2"> C </p>

и...

 $('[id^="item"][id$="2"]')

Ответ 6

Вот рабочий JS FIDDLE

HTML:

<p id="item5_2"> A </p>
<p id="item9_5"> B </p>
<p id="item14_2"> C </p>
<input type="button" value="Get element ids starting with 'item' and ending with '2'" onclick="get_ids()">

JS:

get_ids = function(){
    $('[id^="item"][id$="2"]').each(function() {
        alert($(this).attr('id'));
    });
}

Ответ 7

Вы можете использовать следующий код, если хотите выполнить любое другое действие:

$('[id^="item"]').each(function(){
  if(this.id.slice(-1) == 2){
    //Do something
    $(this).html('D');
  }

});