2014-03-11 3 views
0

Я работаю над проектом, и я пытаюсь получить все изнутри p-тега.JQuery получает все внутри тега

Скажем, HTML-код это

<p>Hey everyone, this is it</p> 

И Jquery:

$('p').each(function(i) { 
     ($(this).html()); 
}); 

This.html() теперь содержит HTML внутри абзаца, OK хорошо.

Если у меня есть <p>Hey...<a href='something'>link</a></p>, все еще доступно через this.html(). Или я мог получить <a> -контента от этого.

НО, если у меня есть <div> или А <li> или <ul> теги внутри моей <p>, this.html() не содержит DIV или Li или мкл, и ни делает this.children. This.html() останавливается перед тегом.

Как я могу получить ВСЕ из моего <p> -tag независимо от того, какие теги есть?

+6

Это было бы недействительным HTML. Теги абзаца могут содержать только встроенные элементы в качестве дочерних элементов, поэтому они не работают. – epascarello

+0

Не должно быть ни div, ни ul внутри p ... Элементы линейного уровня, такие как a и span, разрешены tho, вот почему вы получаете их –

+0

Если в вашем абзаце есть , ваш абзац больше не является абзацем , –

ответ

1

Вы должны переключиться на использование метки <div> вместо <p>. Тогда у вас не будет этой проблемы.

0

Когда вы положили div внутри p, браузер автоматически заканчивает пункт и начинает деление. Это как если бы вместо <div>, то было </p></div>. То же самое происходит, если вы начинаете новый абзац.

0

Да обернуть все в DIV, а не <p> <p> может только иметь определенные элементы в нем, такие как ссылки, сильный, смелый, пролетами <div> может содержать что-либо, а также является элементом блочного уровня

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