首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果<element> = jQuery,则更改所有HTML

如果<element> = jQuery,则更改所有HTML
EN

Stack Overflow用户
提问于 2010-12-18 06:54:32
回答 4查看 2.2K关注 0票数 4

所以从本质上讲,我有一大堆包含不间断空格的段落标签。虽然我知道,删除它们并纠正这个问题才是真正的问题--我正在研究一个创可贴修复程序,以便在页面通过jQuery加载后自动删除它们。

本质上,我有:

代码语言:javascript
复制
<p>&nbsp;</p>

在一个页面中有几百次。

我想通过jQuery将它们全部删除,但当然不会删除页面上不只包含不间断空格的所有其他段落。

这应该是相当简单的,但由于某些原因,我不能理解它;例如:

代码语言:javascript
复制
if($.trim($('p').html()) == '&nbsp;'){
$(this).remove();
}

这只是点击页面的第一段,我需要点击所有的段落。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-18 06:58:22

jQuery可以帮助你做到这一点:

代码语言:javascript
复制
$("p").html(function(index, oldHtml) {
    if (oldHtml === "&nbsp;") {
        $(this).remove();
    }
});

Live example

它使用the variant of the jQuery html function that accepts a function。如果需要,请添加$.trim

或者:

代码语言:javascript
复制
$("p").each(function() {
  var $this = $(this);
  if ($this.html() === "&nbsp;") {
      $this.remove();
  }
});

Live example

它先使用each,然后使用html来检索每个元素的HTML。同样,如果需要,请添加$.trim

票数 3
EN

Stack Overflow用户

发布于 2010-12-18 07:00:12

使用jQuery的each()函数遍历它们中的每一个:

代码语言:javascript
复制
$('p').each(function()
{
    if ($.trim($(this).html()) == '&nbsp;')
    {
        $(this).remove();
    }
}

您还可以使用":contains“选择器来仅获取包含不间断空格的段落:

代码语言:javascript
复制
$('p:contains("&nbsp;")')
票数 2
EN

Stack Overflow用户

发布于 2010-12-18 06:59:16

您的选择器是正确的。但是一旦你调用html() (或者attr()text()或者类似的东西),它就会为第一个匹配的元素调用它。因此,您必须迭代所有元素,并测试/删除每个元素

代码语言:javascript
复制
$(p).each(function(){
  if($.trim($(this).html()) == '&nbsp;') {
    $(this).remove();
  }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4475460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档