2015-09-05 106 views
3

有没有一种使用javascript来查找特定字符串并删除其html元素的方法。 例如,我有这样的html代码如下:在div中查找特定的字符串并删除它的html元素

<div class="summary"> 
List of texts: 
    <ul> 
    <li>Text 0</li> 
    <li>Text 1</li> 
    <li>Text 2</li> 
    <li>Text 3</li> 
    <li>Text 4</li> 
    <li>Text 5</li> 
    </ul> 
</div> 

,我想隐藏“文本2”,首先我要找到这个字符串,然后将其隐藏。 我试过的是使用html()。替换,但它只隐藏文本而不是元素。 JSFiddle

+0

jQuery的也是有效的。 –

回答

1

你的小提琴非常接近。这是从DOM中删除元素的更新版本。

$('.summary li').each(function() { 
    var $this = $(this); 
    if ($this.text() === 'Text 2') { 
     $this.remove(); 
    } 
}); 

http://jsfiddle.net/sLa3dkdd/3/

0

使用JQuery,你可以那样做:

$('.summary ul').children().each(function() { 
    if($(this).text() == searchedValue) { 
     $(this).hide(); 
    } 
}) 
+0

我评论说,亚历山大做了什么是最好的方式来做伎俩。你完全可以改进。我会编辑这个。谢谢你的建议 –

7

在jQuery中有:contains

$('.summary li:contains(Text 2)').hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="summary"> 
 
List of texts: 
 
    <ul> 
 
    <li>Text 0</li> 
 
    <li>Text 1</li> 
 
    <li>Text 2</li> 
 
    <li>Text 3</li> 
 
    <li>Text 4</li> 
 
    <li>Text 5</li> 
 
    </ul> 
 
</div>

+1

我喜欢这个答案。很简单。 –

+1

比我的效率更高! GJ :) –

1

Iterrate在li元素,检查文本内容是搜索值,然后隐藏或删除元素。

$(function() { 
    $('.summary li').each(function() { 
    var $this = $(this); 
    if($this.text() === 'Text 2'){$this.hide();} 
    }); 

}); 
相关问题