我正在尝试根据属性类型删除元素。由于某种原因,它不起作用。
有问题的元素是:
<p style="width:250px;font-size:11px;text-align:left;margin-left:1.2ex;margin-top:0px;margin-bottom:0px;line-height:1.15em;">– in Europe<span style="font-size:8px;"><span style="white-space:nowrap;"> </span></span>(<span style="font-size:9px;">green & dark grey</span>)<br>
– in the European Union<span style="font-size:8px;"><span style="white-space:nowrap;"> </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];
链接变量是维基百科的链接。
答案 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
的错误,因为如果上面的代码不能正常工作,那就不是你认为的那样