尝试根据属性类型删除元素

时间:2015-05-04 03:31:38

标签: javascript jquery

我正在尝试根据属性类型删除元素。由于某种原因,它不起作用。

有问题的元素是:

<p style="width:250px;font-size:11px;text-align:left;margin-left:1.2ex;margin-top:0px;margin-bottom:0px;line-height:1.15em;">–&nbsp;in Europe<span style="font-size:8px;"><span style="white-space:nowrap;">&nbsp;&nbsp;</span></span>(<span style="font-size:9px;">green &amp;&nbsp;dark grey</span>)<br>
–&nbsp;in the European Union<span style="font-size:8px;"><span style="white-space:nowrap;">&nbsp;&nbsp;</span></span>(<span style="font-size:9px;">green</span>)</p>

我试图以这种方式删除它 - item是一个容器元素。

$(item).find("p").filter("[style]").remove();

没有其他<p>标签带有属性样式,但是这似乎不会删除它。

其他代码,像这样,工作正常:

$(item).find(".reference").remove();

如何从item元素中删除带有style属性的所有p标记?

这是项目的创建方式:

                                $.get(link, function(response) {
                                        var elements = $.parseHTML(response);
                                        var wiki = $(elements).find('#mw-content-text').find("p");
                                        //var ps = [];
                                        var arrayLength = wiki.length;
                                        for (var i = 0; i < arrayLength; i++) {
                                            if (wiki[i].innerHTML === "") {
                                                break;
                                            }
                                            var item = wiki[i];

链接变量是维基百科的链接。

3 个答案:

答案 0 :(得分:1)

也许试试这个:

$.each(item.children('p'), function(index) {
  if ($(this).attr('style')) {
    $(this).remove();
  }
});

答案 1 :(得分:0)

item指的是p元素本身。你不必在项目中找到p:

$(item).filter("[style]").remove();

答案 2 :(得分:0)

重新审视你的问题后,

$(item).find("p").filter("[style]").remove();

完全有效,而不是尝试提出替代方法来编写它,找出item的错误,因为如果上面的代码不能正常工作,那就不是你认为的那样