如果字符串编号仅为0,则隐藏另一个元素

时间:2017-03-20 07:20:57

标签: javascript jquery

因此,如果字符串包含单个0,我会尝试隐藏第二个元素。该元素应显示该数字是否为其他任何内容:10 100 11等。它还需要一个.each函数,因为在厄运中会有几个带有此变量的元素。

到目前为止尝试了

脚本:

if ( parseInt( $('.incomingStock').html() ) > -1) $('deliverydate').css({'display':'none'})

HTML

 <div id="parent">

  <div class="incomingStock">0 i inkommande lager</div>
  <div class="deliverydate">Leveransdatum: 2017.03.17</div>

  <div class="incomingStock">0 i inkommande lager</div>
  <div class="deliverydate">Leveransdatum: 2017.03.17</div>

 </div>

4 个答案:

答案 0 :(得分:1)

您可以使用split从字符串创建数组。然后检查该阵列中的0索引&amp;可以采取相应的行动

var getText = $('.incomingStock').text().split(' '); // will create an array
if (getText.indexOf('0') >= 0){  // check if 0 is present or not
 $('.deliverydate').css({'display':'none'}) // add styles

}

DEMO

答案 1 :(得分:0)

以下代码可能会对您有所帮助, 在这里,我正在阅读ID = incomingStock的所有元素,然后根据您的条件,处理进一步的更改。

$("[id^='incomingStock']").each(function() {
        id = this.id;
        val = ($('#'+id)).val();

        if(val > -1) {
            $('deliverydate').css({'display':'none'})
        }
});

如果您可以显示要使用此代码的粗略开发页面,那将对您有所帮助。

答案 2 :(得分:0)

你忘了向select $('deliverydate')添加点,它必须是这样的 - $('。deliverydate'),因为它是CSS类。为什么你隐藏元素,如果数字超过-1?

所以你的代码可能看起来像这样。

(function($) {
  var detector = parseInt($('.incomingStock').text(), 10);
  var showElement = $('.deliverydate');
  
  showElement.hide();
  
  if (detector > -1) {
    showElement.show();
  }
}(jQuery));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="incomingStock">0 i inkommande lager</div>
 <div class="deliverydate">Leveransdatum: 2017.03.17</div>
 <div class="deliverydate">Leveransdatum: 2017.03.18</div>
 <div class="deliverydate">Leveransdatum: 2017.03.19</div>

如果你需要每个函数只是因为被操纵的块多于一个,它就不是。 jQuery可以按类理解多个元素。 (对不起,如果我的英语难以理解)。

答案 3 :(得分:0)

brk's answer介绍如何在元素文本中查找数字。我想说明如何循环并隐藏每个下一个元素,如问题中所详述。

另外,我想展示一下如何以不同方式进行数字检测。我正在使用一个正则表达式,使用word boundary特殊字符检查数字0是否为自己的单词。

$('.incomingStock').each(function() {
  var incomingStock = $(this);
  if (incomingStock.text().match(/\b0\b/) !== null) {
    incomingStock.next('.deliverydate').hide();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="parent">

  <div class="incomingStock">0 i inkommande lager</div>
  <div class="deliverydate">Leveransdatum: 2017.03.17</div>

  <div class="incomingStock">0 i inkommande lager</div>
  <div class="deliverydate">Leveransdatum: 2017.03.17</div>
  
  <div class="incomingStock">1 i inkommande lager</div>
  <div class="deliverydate">Leveransdatum: 2017.03.17</div>

  <div class="incomingStock">0 i inkommande lager</div>
  <div class="deliverydate">Leveransdatum: 2017.03.17</div>

</div>