Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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 如何删除具有特定innerHTML的所有元素 函数checkIfBlank(){ 让li=document.getElementsByClassName(“li”); 对于(变量i=0;i_Javascript_Html_Jquery - Fatal编程技术网

Javascript 如何删除具有特定innerHTML的所有元素 函数checkIfBlank(){ 让li=document.getElementsByClassName(“li”); 对于(变量i=0;i

Javascript 如何删除具有特定innerHTML的所有元素 函数checkIfBlank(){ 让li=document.getElementsByClassName(“li”); 对于(变量i=0;i,javascript,html,jquery,Javascript,Html,Jquery,我有这个函数,它将删除span的父元素,该span的innerHTML为“hello” 在本例中,我希望代码删除innerHTML为hello的所有元素 但事实证明,当函数执行时,它只删除一个元素 有人能帮我吗?我不是很好xD你可以使用jquery删除带有匹配文本的li,我希望你能得到答案 $('li:contains(“hello”)) .next('span').remove().end() .remove() 你好 你好 你好 你好 你好 你好 你确定没有这样的东

我有这个函数,它将删除span的父元素,该span的innerHTML为“hello”

在本例中,我希望代码删除innerHTML为hello的所有元素

但事实证明,当函数执行时,它只删除一个元素


有人能帮我吗?我不是很好xD

你可以使用jquery删除带有匹配文本的li,我希望你能得到答案

$('li:contains(“hello”))
.next('span').remove().end()
.remove()

  • 你好
  • 你好
  • 你好
  • 你好
  • 你好
  • 你好
  • 你确定没有这样的东西:

    <span class="li">
        Hello
    </span>
    
    
    你好
    
    与此相反:

    <span class="li">Hello</span>
    
    你好

    我想到的第一件事是,如果有任何换行符或空白,那么您肯定需要在该innerHTML字符串上运行.trim()。但是,如果不是这样,我建议在某些地方放一堆console.log(),看看它在for循环中走了多远。

    出于这种目的,使用
    Array.from(element)
    更安全

    函数checkIfBlank(){
    让li=document.getElementsByClassName(“li”);
    数组.from(li).forEach(函数(li\u curr){
    如果(li_curr.innerHTML==“你好”){
    li_curr.parentElement.remove();
    }
    });
    }
    checkIfBlank()
    
    • 你好
    • 你好
    • 你好
    • 你好
    • 你好
    • 你好

    喜欢吗?如果您需要任何帮助,请发邮件给我,我很高兴为您提供帮助。您好,感谢您的回答,为什么使用array.from?@coder更好,因为它设计用于与您类似的任务。for{}循环执行操作n次,并且可能不属于n个元素的间隔。我自己也面临着类似的问题。但您完全可以使用另一位受访者提供的jquery解决方案。顺便说一下,这个答案可以缩写为-$('.li:contains(“hello”)).parent().remove();或$('li:contains(“hello”)).remove();。我在第二个解决方案中指出了这一点。啊,好的,谢谢你的解释