【问题标题】:How to remove text inside an element with jQuery?如何使用jQuery删除元素内的文本?
【发布时间】:2011-10-05 03:34:37
【问题描述】:

我有一个脚本可以创建一个具有如下结构的项目列表:

<li>
    <div>Some stuff</div>
    <a href="http://www.mysite.com/">New Item</a> 
    (1 vote)
</li>

我想知道是否有办法删除 &lt;div&gt;&lt;a&gt; 标记之外的所有内容,在本例中为 (1 vote) 字符串,使用 jQuery 或常规 javascript。

提前致谢!

【问题讨论】:

标签: javascript jquery html regex replace


【解决方案1】:
$('li').not('div,a').text('') 

试试这个,未经测试

编辑

$('li').contents().filter(function(){ return !(this.tagName == 'DIV' 
                                            || this.tagName == 'A');}).remove();

【讨论】:

【解决方案2】:

这应该可行。

$("li").contents().filter(function(){ return this.nodeType != 1; }).remove();

或通过明确指定文本节点

$("li").contents().filter(function(){ return this.nodeType == 3; }).remove();

看到这个fiddle

【讨论】:

  • 谢谢!我最终使用了$('ul li').contents().filter(function() { return this.nodeType == Node.TEXT_NODE; }).remove();
【解决方案3】:
$('li').html($(this).children())

你可以试试这个,应该可以的。干净简单。

【讨论】:

  • 有趣的想法,但 html 只需要一个字符串。你可以这样做.empty().append(children),但你必须先存储孩子们才能这样做
猜你喜欢
  • 1970-01-01
  • 2013-05-11
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多