使用inArray检查内容以添加类

时间:2014-04-24 11:23:29

标签: jquery

所以jQuery“inArray”对我来说是一个新的野兽所以我有点不确定它是如何工作的。 https://api.jquery.com/jQuery.inArray/

我有一个包含此内容的div“0现在检查”。

我想检查0何时更改为另一个数字,如果确实更改,则将“active”类添加到包含div中。

我的HTML看起来像这样:

<div class="search-again-panel-top">
    <a class="checkout-now" href="#">
    0 CHECKOUT NOW
    </a>
</div>

这就是我试图做的事情:

$('.search-again-panel-top .checkout-now').filter(function() {
        var text = $(this).text('0');
        return $.inArray(text, this) = -1;
    }).addClass('active');

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

var checkElement = $('.search-again-panel-top .checkout-now')
var parts = $(checkElement).html().split(" ");
if (jQuery.inArray("0", parts) == -1) {
//do nothing
} else {
//has changed
$(checkElement).addClass("active");
}

jquery.inArray函数基本上将您搜索的项目作为第一个参数传递,并将您检入的实际数组作为第二个参数传递,并检查它是否存在。如果在数组中找到该项,它将返回找到的字符串中的字符位置。如果找不到,则返回-1

答案 1 :(得分:0)

您正在设置文本而不是获取文本,在获取文本时不应使用参数。要检查数组中的文本,您需要使用split来获取数组,并且应该查找'0',而不是this,并检查结果是否不等于 - 1。

var text = $(this).text();
text = text.split (' ');
return $.inArray('0', text) != -1;