Jquery 选择器:定位带有两个 class 前缀的元素

Jquery selector: targeting an element with two class prefixes

我有一些元素在同一元素上包含两个相似的 class,例如 "col-md-3 col-md-6",我想用 jQuery select 或 select 来标识它们。

示例:

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

如何才能 select 只有包含这两个 class 的元素?

我试过类似的东西:

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

但针对所有带有一两个 class 前缀的元素 "col-md-"

fiddle js:

把两个 类 放在一起,不用 space:

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

更新: 您可以使用 filter:

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

fiddle

没有选择器可以进行这种模式匹配。您需要匹配其中一个 类,然后使用 .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>

使用.filter()和下面的逻辑计算两次出现,

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

Fiddle