Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据列表项的值隐藏列表项_Javascript_Jquery - Fatal编程技术网

Javascript 根据列表项的值隐藏列表项

Javascript 根据列表项的值隐藏列表项,javascript,jquery,Javascript,Jquery,使用Javascript或Jquery,我需要隐藏值为“0”的列表中的任何元素 <ul> <li>0</li> <li>1</li> <li>2</li> <li>3</li> <li>0</li> <li>4</li> </ul> 0 一, 二, 三, 0 四, 像这样做。当您不想精确匹配时,使用单

使用Javascript或Jquery,我需要隐藏值为“0”的列表中的任何元素

<ul>
  <li>0</li>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>0</li>
  <li>4</li>
</ul>
  • 0
  • 一,
  • 二,
  • 三,
  • 0
  • 四,

像这样做。当您不想精确匹配时,使用单线解决方案

$('li:contains(0)').hide()

  • 0
  • 十,
  • 二,
  • 三,
  • 0
  • 四,

尝试此代码示例,它将删除具有0值的li

$('#list li').filter(函数(){
返回$(this.text()='0';
}).hide()

  • 0
  • 一,
  • 二,
  • 0
  • 三,
  • 四,
$(“li”)。每个函数(索引){
if($(this).text()==0){
$(this.hide();
}
});

  • 0
  • 一,
  • 二,
  • 三,
  • 0
  • 四,

Sourav答案(使用:contains)的问题在于,它还将匹配“包含”0的任何其他内容。例如10、20等

请尝试以下方法:

这实际上从DOM中删除了元素:

  <script type="text/javascript">
    $(document).ready(function () {
      $("li").filter(function() {
        return $(this).text() === '0';
      })
      .remove()
    })
  </script>
  <script type="text/javascript">
    $(document).ready(function () {
      $("li").filter(function() {
        return $(this).text() === '0';
      })
      .hide()
    })
  </script>

$(文档).ready(函数(){
$(“li”).filter(函数(){
返回$(this.text()='0';
})
.删除()
})
此元素将保留在DOM中,但不可见:

  <script type="text/javascript">
    $(document).ready(function () {
      $("li").filter(function() {
        return $(this).text() === '0';
      })
      .remove()
    })
  </script>
  <script type="text/javascript">
    $(document).ready(function () {
      $("li").filter(function() {
        return $(this).text() === '0';
      })
      .hide()
    })
  </script>

$(文档).ready(函数(){
$(“li”).filter(函数(){
返回$(this.text()='0';
})
.hide()
})

每个人的答案都对jQuery着迷,但是普通的JS同样简短,您不需要加载jQuery的开销

[…document.querySelectorAll('li')]
.filter(el=>el.textContent=='0')
.forEach(el=>el.classList.add('hidden')
.hidden{display:none;}
  • 0
  • 一,
  • 二,
  • 三,
  • 0
  • 四,

,检查我的答案这也将删除任何其他“包含”0的数字。例如,10、20等见我的最新答案。对于这两种情况,你只是抄了我的答案吗?没有。只需阅读jquery的文档并从中获得信息。这不是文档中的示例,尽管与我的示例相同?
$(This).text()
将更简单。多亏了这一点,这一方法很有效,但此解决方案的问题是,它仅在列表项不包含“0”时才有效。如果列表项包含“
  • 这是数字0
  • ”等怎么办?谢谢Rory,你的权利。我将修改示例:)Ruben,你能更新你的问题并清楚地解释你的用例是什么吗?您提供的示例(我们都给出了答案)不包含任何其他文本。如果值为0,您只需请求删除该项