Javascript 根据列表项的值隐藏列表项
使用Javascript或Jquery,我需要隐藏值为“0”的列表中的任何元素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 四, 像这样做。当您不想精确匹配时,使用单
<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,您只需请求删除该项