javascript替代ruby .none?

时间:2018-05-02 18:01:37

标签: javascript boolean iteration conditional

如果没有符合条件,我如何迭代和do something。对于Ruby中的上下文,我可以some_array.none?{|t| t == "something"}并获得一个布尔值。

在js中,我试图用[href]道具来迭代所有元素,并且如果没有类,那就做一些事情" active"

$("[href]").each(function() {
    if (this.href == window.location.href) {
        $(this).addClass("active");
    }
});

我执行上述操作来设置活动链接的样式,但是如果其他链接都没有,我希望将其中一个链接设置为活动状态。我是js的新手,所以我相信可能有更好的方法。

2 个答案:

答案 0 :(得分:1)

你不能将选择器条件移动到jQuery选择器中,然后测试选择器长度吗?

var selector = $("[href=" + window.location.href + "]");
selector.each(function() {
    $(this).addClass("active");
});

if(selector.length == 0) {
    $("[href='/snippets/new/]").addClass("active");
}

答案 1 :(得分:0)

好的,所以我完成了我想要的东西,但它有点hacky和丑陋,所以我仍然愿意接受替代方案

var counter = 0;
$("[href]").each(function() {
    if (this.href == window.location.href) {
        counter = +1;
        $(this).addClass("active");
    }
});

if (counter === 0) {
    $("[href='/snippets/new']").addClass("active");
}