javascript - jQuery 循环查找值为 true 的最后一个数据属性并添加类

标签 javascript jquery html

我有以下循环,选择页面上的每个折叠元素并检查数据属性是否为 true(每个折叠元素是流程中的一个步骤),如果数据属性为 true,则应用事件类并且折叠被扩展。但是,我想仅将事件类应用于数据属性为 true 的最后一个元素。

jQuery:

var $steps = $('dd.accordion-navigation.workspace-step');

$steps.each(function () {

    var stepComplete = $(this).data('workspace-step-complete');

    if (stepComplete === true) {
        $(this).addClass('active')
            .find('.content')
            .addClass('active');
    }
});

HTML:

<dd class="accordion-navigation workspace-step" data-workspace-step-complete="true">
<!-- Apply active class to this step only -->
<dd class="accordion-navigation workspace-step" data-workspace-step-complete="true">
<dd class="accordion-navigation workspace-step" data-workspace-step-complete="false">
<dd class="accordion-navigation workspace-step" data-workspace-step-complete="false">
<dd class="accordion-navigation workspace-step" data-workspace-step-complete="false">

最佳答案

尝试使用属性等于选择器,:last选择器.is()

var $steps = $('dd.accordion-navigation.workspace-step');

$steps.each(function () {

    $(this).is("[data-workspace-step-complete=true]:last") &&    
    $(this).addClass('active')
    .find('.content')
    .addClass('active');

});

关于javascript - jQuery 循环查找值为 true 的最后一个数据属性并添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33403125/

相关文章:

jQuery CSS 不透明度

javascript - 如何在页脚处停止静态侧边栏

html - 根据内容自动调整面板宽度

java - 无法在jsp中加载图像?

javascript - HTML 5 拖放 - 使用自定义光标

javascript - 实时检测浏览器大小 - jQuery/JavaScript

javascript - 为什么不能将变量设置为 <number>.toString(),但可以在返回值上调用 toString()?

javascript - 如何在JavaScript中的自定义LISP中编写宏扩展

javascript - jQuery:斑马条纹表

jquery - 使用 jquery 删除空 <ul> 标签