所以从本质上讲,我有一大堆包含不间断空格的段落标签。虽然我知道,删除它们并纠正这个问题才是真正的问题--我正在研究一个创可贴修复程序,以便在页面通过jQuery加载后自动删除它们。
本质上,我有:
<p> </p>在一个页面中有几百次。
我想通过jQuery将它们全部删除,但当然不会删除页面上不只包含不间断空格的所有其他段落。
这应该是相当简单的,但由于某些原因,我不能理解它;例如:
if($.trim($('p').html()) == ' '){
$(this).remove();
}这只是点击页面的第一段,我需要点击所有的段落。
发布于 2010-12-18 06:58:22
jQuery可以帮助你做到这一点:
$("p").html(function(index, oldHtml) {
if (oldHtml === " ") {
$(this).remove();
}
});Live example
它使用the variant of the jQuery html function that accepts a function。如果需要,请添加$.trim。
或者:
$("p").each(function() {
var $this = $(this);
if ($this.html() === " ") {
$this.remove();
}
});Live example
它先使用each,然后使用html来检索每个元素的HTML。同样,如果需要,请添加$.trim。
发布于 2010-12-18 07:00:12
使用jQuery的each()函数遍历它们中的每一个:
$('p').each(function()
{
if ($.trim($(this).html()) == ' ')
{
$(this).remove();
}
}您还可以使用":contains“选择器来仅获取包含不间断空格的段落:
$('p:contains(" ")')发布于 2010-12-18 06:59:16
您的选择器是正确的。但是一旦你调用html() (或者attr(),text()或者类似的东西),它就会为第一个匹配的元素调用它。因此,您必须迭代所有元素,并测试/删除每个元素
$(p).each(function(){
if($.trim($(this).html()) == ' ') {
$(this).remove();
}
});https://stackoverflow.com/questions/4475460
复制相似问题