Jquery选择器:以具有两个类前缀的元素为目标

时间:2015-04-09 10:53:26

标签: jquery jquery-selectors

我有一些元素包含两个类似的类,如" col-md-3 col-md-6"在同一个元素上,我想用jQuery选择器识别它们。

示例:

<div class="col-md-3 col-md-6"></div

如何只选择包含这两个类的元素?

我尝试过类似的事情:

$("[class*='col-md-'][class*='col-md-']").css("background", "#07BCCD")

但是定位所有带有一个或两个类前缀&#34; col-md-"

的元素

fiddle js:

3 个答案:

答案 0 :(得分:2)

将两个类放在一起,没有空格:

$(".col-md-3.col-md-6").css("background", "#07BCCD");

<强>更新 您可以使用filter

var prefix = $("[class*='col-md-']").filter("[class*=' col-md-']").css("background", "#07BCCD");

fiddle

答案 1 :(得分:1)

没有选择器可以进行这种模式匹配。您需要匹配其中一个类,然后使用.filter()来测试它是否至少有两个匹配的类。

$("[class^=col-md-]").filter(function() {
  return this.className.split(' ').filter(function(e) {
    return e.indexOf('col-md-') == 0;
  }).length >= 2;
}).css("background-color", "#07BCCD");
div {
  height: 50px;
  width: 50px;
  background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-md-3 col-md-6"></div>
<div class="col-md-3"></div>

答案 2 :(得分:1)

使用.filter()和以下逻辑计算两次出现次数

var prefix = $(".row div").filter(function () {
    return ($(this).attr('class').split('col-md-')).length > 2;
}).css("background", "#07BCCD");

<强> Fiddle