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");
但它不起作用。我怎样才能让它发挥作用?
答案 0 :(得分:35)
是的,您可以合并attribute starts with和attribute 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');
}
});