选择具有以特定值开头/结尾的id属性的元素

时间:2014-06-06 12:27:08

标签: javascript jquery html regex

jQuery或JavaScript可以与正则表达式一起使用来选择具有相似id的多个元素吗?

我有以下段落:

<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

7 个答案:

答案 0 :(得分:35)

是的,您可以合并attribute starts withattribute ends with选择器

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

FIDDLE (你必须在小提琴中启用jQuery)

你不能使用正则表达式来匹配两者之间的数字,因为你需要filter()

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

答案 1 :(得分:15)

你可以使用&#34; 开始&#34;和&#34; &#34;结尾jQuery提供的选择器,如下所示。

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

官方文件:

答案 2 :(得分:9)

最好的方法是使用 the following jQuery selectors

^= is starts with
$= is ends with

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

所以在你的情况下:

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

答案 3 :(得分:4)

您可以组合属性选择器:fiddle

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

答案 4 :(得分:4)

试试这个

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

和...

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

答案 5 :(得分:4)

这是工作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'));
    });
}

答案 6 :(得分:2)

如果您想要执行任何其他操作,可以使用下一个代码:

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

});