如何使用jQuery正则表达式查找具有特定ID的所有div

时间:2015-01-28 10:54:39

标签: javascript jquery html regex

在我的文件中,我有几个ID,以字母开头,#34; p"然后是任何数字。我想使用jQuery正则表达式模式找到它们,然后向它们添加类。你能帮我解决这个片段吗?感谢。



$(function(){
  
  var pattern = "#p\d+";
  
  $(pattern).addClass(".red");
  
});

div {
  width: 100px;
  height: 100px;
  margin: 20px;
  background: green;
}

.red {background: red;}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="p27"></div>
<div id="p46"></div>
<div id="p124"></div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:3)

当然,您可以使用filter方法应用您需要的任何特定逻辑:

$(function(){
      
  $("div")
      .filter(function() { return /^p\d+$/.test(this.id); })
      .addClass("red");
  
});
div {
  width: 100px;
  height: 100px;
  margin: 20px;
  background: green;
}

.red {background: red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="p27"></div>
<div id="nomatch"></div>
<div id="p124"></div>

答案 1 :(得分:0)

你可以尝试

$("div").filter(function(i,e){return e.match(/^p\d+$/)!=null;}).addClass("red")

它基本上找到所有div,然后过滤掉那些与正则表达式不匹配的div,并将该类添加到其余标记中。 (我没有测试过这段代码。)

答案 2 :(得分:0)

您可以这样添加课程:

$("div[id^='p']").addClass(".red");