2015-05-04 4 views
-1

Я пытаюсь удалить элемент на основе типа атрибута. По какой-то причине он не работает.Попытка удалить элемент по типу атрибута

элемент в вопросе заключается в следующем:

<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).find("p").filter("[style]").remove(); 

Там нет других <p> тегов со стилем атрибутов, однако это не представляется, чтобы удалить его.

Другой код, как это, работает отлично:

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

Как удалить все р-теги с атрибутом стиля из элемента элемента?

Это как создается элемент:

       $.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

, пожалуйста, предоставьте демоверсию, которая воспроизводит это. Мы не можем видеть, что такое «элемент», поэтому он может отличаться от ожидаемого. Работает ли '$ (item) .find (" p ")'? – charlietfl

+0

Да, $ (item) .find ("p") работает –

ответ

0

Пункт относится к самому элементу p. Вы не должны найти р в пункте:

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

'item является элементом контейнера.' ?? –

+1

Этот элемент, относящийся к элементу, является элементом элемента 'p' –

1

Может попробовать это:

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

Что случилось с' [style] 'selector? – undefined

0

после повторного глядя на ваш вопрос,

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

вполне допустимо, а пытаясь придумать альтернативные способы написать его, узнать, что не так с item, потому что это не то, что вы думаете, если выше код не работает

+3

это сломается плохо, если 'item' является объектом, и нет причин, по которым он будет работать, если' find(). Filter() 'does not – charlietfl

Смежные вопросы