如果元素只包含一个特定数字,则将该类添加到元素

时间:2016-04-26 07:46:50

标签: javascript jquery

我试图将一个类添加到它的一个字符串只包含一个零。

我正在尝试这样的事情,但不能让它发挥作用:

$(".stockinfo.col4").filter(function() {
    return $(this).text() === "0";
}).addClass("orderitem");

HTML:

<div class="stockinfo col4"><strong>Stock</strong>: 0<span></span></div>

这是最好的方法吗?

编辑:这可行 - 但如果它不匹配字符串中的零,则会引发错误。可以使用它,但我不喜欢在控制台中出现错误 - 让我感到紧张

$(".stockinfo.col4").filter(function() {
 console.log($(this).text().trim().match(/0/g).length)
  if ($(this).text().trim().match(/0/g).length == 1) {
  $(".stockinfo.col4").addClass("orderitem")
 }
});

错误:

TypeError: Cannot read property 'length' of null

3 个答案:

答案 0 :(得分:1)

您的代码应该有效。但是在我看来,您可以将值放在span元素中,然后使用find()进行检查。

&#13;
&#13;
$(".stockinfo.col4").filter(function() {
  return $(this).find('span').text().trim() === "0";
}).addClass("orderitem");
&#13;
.orderitem{
  color:red
 }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="stockinfo col4"><strong>Stock</strong>: <span>0</span>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用正则表达式,如下所示。

$(".stockinfo.col4").filter(function () {
    return ($(this).text().match(/0/g) || []).length == 1;
}).addClass("orderitem");
.orderitem {
    color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="stockinfo col4"><strong>Stock</strong>: 0<span></span></div>
<div class="stockinfo col4"><strong>Stock</strong>: 000<span></span></div>
<div class="stockinfo col4"><strong>Stock</strong>: 1<span></span></div>

UPDATE:,用于将类添加到0。

$(".stockinfo.col4").filter(function() {
  return $(this).text().split(':')[1].trim() == '0';
}).addClass("orderitem");
.orderitem {
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="stockinfo col4"><strong>Stock</strong>: 0<span></span></div>
<div class="stockinfo col4"><strong>Stock</strong>: 000<span></span></div>
<div class="stockinfo col4"><strong>Stock</strong>: 1<span></span></div>
<div class="stockinfo col4"><strong>Stock</strong>: 10<span></span></div>

答案 2 :(得分:1)

$(".stockinfo.col4").filter(function() {
  if($(this).text().trim().match(/0/g)){//check if there is 0
  return ($(this).text().trim().match(/0/g).length == 1)//count number of 0
  }

}).addClass("orderitem");//add class

您必须首先检查字符串中是否有0。如果有0计数,如果== 1则添加类

Demo