Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择id属性以特定值开始/结束的元素_Javascript_Jquery_Html_Regex - Fatal编程技术网

Javascript 选择id属性以特定值开始/结束的元素

Javascript 选择id属性以特定值开始/结束的元素,javascript,jquery,html,regex,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> 但它不起作用。我怎样才能让它工作 您可以使用jQuery提供的“开始于”和“结束于”选择器,如下所示 $("[id^='item'][id$='2']").html("D")

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

我有以下几段:

<p id="item5_2"> A </p>
<p id="item9_5"> B </p>
<p id="item14_2"> C </p>
但它不起作用。我怎样才能让它工作

您可以使用jQuery提供的“开始于”和“结束于”选择器,如下所示

$("[id^='item'][id$='2']").html("D");
正式文件:


是的,它可以,您可以将和选择器结合使用

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

但是,您不能使用正则表达式来匹配中间的数字,因为您需要这样做


可以组合属性选择器:

试试这个

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

最好的方法是使用

^= is starts with
$= is ends with

=  is exactly equal
!= is not equal
*= is contains
因此,在你的情况下:

var $items = $('[id^="item"][id$="2"]');
这是工作票

HTML:


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

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

});

具有相似ID??ID应该是唯一的。@milindiantwar类似!=sameAm I是唯一一个注意到目前为止所有答案都以
2
结尾的人,但有一个以
5
结尾?@nyuszika7h再次阅读问题:)(nem jut eszembe idevágónyuszikás vicc)@marczellm噢,对不起,我明白了。我想我不应该这么晚才上电视这是对这个问题的一个很好的回答,但我想谈谈房间里的大象。基于部分id匹配进行选择是一种可怕的方法,完全忽略了这一点。尤其是当您可以使用数组来获得相同的结果时。不要将业务逻辑放在应用程序的表示层中。做这些选择是开发人员在编写UI的第一步中经常犯的错误,最好避免。
 <p id="item5_2"> A </p>
 <p id="item9_5"> B </p>
 <p id="item14_2"> C </p>
 $('[id^="item"][id$="2"]')
^= is starts with
$= is ends with

=  is exactly equal
!= is not equal
*= is contains
var $items = $('[id^="item"][id$="2"]');
<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()">
get_ids = function(){
    $('[id^="item"][id$="2"]').each(function() {
        alert($(this).attr('id'));
    });
}
$('[id^="item"]').each(function(){
  if(this.id.slice(-1) == 2){
    //Do something
    $(this).html('D');
  }

});