jQuery筛选器:多个条件和操作

时间:2018-09-15 18:51:53

标签: jquery syntax

我有几个Check fun A B H => @and_ind A B A (fun a _ => a) H. (* fun (A B : Prop) (H : A /\ B) => and_ind (fun (a : A) (_ : B) => a) H *) (* : forall A B : Prop, A /\ B -> A *) 元素,我必须使用jquery来动态分配类,并想知道是否有一种压缩/清洁的方法可以做到这一点:

<label>

是否有一种方法可以触发$('label').filter(function() {return $.trim($(this).text()) === "Text A:";} ).closest('div').addClass('labeltextaclass'); $('label').filter(function() {return $.trim($(this).text()) === "Text B:";} ).closest('div').addClass('labeltextbclass'); $('label').filter(function() {return $.trim($(this).text()) === "Text C:";} ).closest('div').addClass('labeltextcclass'); (因为我正在搜索.filter()属性),如下所示:

<label>

或者甚至更清洁?

谢谢!

1 个答案:

答案 0 :(得分:1)

我建议使用.filter()代替.each()

$('div label').each(function (idx, ele) {
    switch (ele.textContent.trim()) {
        case 'Text A:':
            $(ele).closest('div').addClass('labeltextaclass1');
            break;
        case 'Text B:':
            $(ele).closest('div').addClass('labeltextaclass2');
            break;
        case 'Text C:':
            $(ele).closest('div').addClass('labeltextaclass3');
            break;
    }
});
div {
    width: 100px;
    height: 100px;
    border-style: solid;
    display: inline-flex;
}

.labeltextaclass1 {
    color: blue;
}

.labeltextaclass2 {
    color: red;
}

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


<div>
    <label>Text A:</label>
</div>
<div>
    <label>Text B:</label>
</div>
<div>
    <label>Text C:</label>
</div>