jquery - 在 jQuery 中选择具有多个类的元素

标签 jquery jquery-selectors traversal

我想选择一个有几个类的元素

类似这样的 HTML:

<div class="myclass fclass sclass tclass"></div>
<div class="myclass tclass"></div>
<div class="myclass sclass tclass"></div>
<div class="myclass fclass tclass"></div>
<div class="myclass fclass sclass tclass"></div>

我只想选择具有 myclass tclass 类的元素。

我真的不想以一种我必须了解每个类的方式来做这件事,就像这样:

$(".myclass.tclass").not(".fclass, .sclass")

最佳答案

作为具有命名函数的回调可能效果不佳(如果您需要使用不同的类类型完成它),但演示显示它可以工作:

$('.myclass.tclass').filter(match_exact_class);

function match_exact_class() {
    return $(this).attr('class').split(/\s+/).length == 2;
}

http://jsfiddle.net/userdude/9bc4qjn4/1

作为单个调用:

$('.myclass.tclass').filter(function match_exact_class() {
    return $(this).attr('class').split(/\s+/).length == 2;
});

$('.myclass.tclass.sclass').filter(function match_exact_class() {
    return $(this).attr('class').split(/\s+/).length == 3;
});

$('.myclass.tclass.tclass.sclass').filter(function match_exact_class() {
    return $(this).attr('class').split(/\s+/).length == 4;
});

我怀疑您可以滚动一个简单的插件或自定义选择器,然后在选择器上进行拆分,例如:

var selector = '.myclass.tclass.tclass.sclass',
    sel_match = selector.split('.').length;

$(selector).filter(function match_exact_class() {
    return $(this).attr('class').split(/\s+/).length == sel_match;
});

简单的自定义选择器:

jQuery.extend(jQuery.expr[':'], {
    matcls: function(elem, i, match){
        return elem.className.split(/\s+/).length == match[3].split(/\s+/).length;
    }
});

console.log($('div:matcls("myclass tclass")'));

http://jsfiddle.net/userdude/9bc4qjn4/4

关于jquery - 在 jQuery 中选择具有多个类的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25276664/

相关文章:

javascript - jQuery : How to operate a plugin on two input boxes

javascript - 将 JSON 空数组转换为空字符串

json - 遍历嵌套的 JSON 结构

社交图广度优先搜索的 Python 使用

javascript - JQuery 未包含在 PhantomJs 中

某个类的远程父级的 jquery id

javascript - 单击显示 'Div 1' 并隐藏 'Div 2' 并单击单独的按钮显示 'Div 2' 并隐藏 'Div 1'?

jQuery 选择器 : get the content of 1st element class containing specific word

Jquery:动态更改用户输入的 href

java - 在Java中遍历双向链表?