这是我的HTML代码:
<div id="notes">
<table class="noborder">
<tr><th class="noborder"><span>notes</span></th></tr>
<tr><td>
<p id="notes_p">
<p>#1: dhhhhhhfdfffg
</p>
<p> qqqqqqqqqqwwwwwwww wweeeeeeeeerr rrrrrrrtt tttttttt
</p>
<p>#2: asldkflaksdjflks, lasjdlfjsaldfjasldjfoajsdkfjaslkdjlkfasjdfwoidjfalk,zmncv,mznoqeworjoiejflaksdlfjwaf</p>
</p>
</td></tr>
</table>
</div>
我想要做的是获取paragraph
中每个#notes_p
的文字。我尝试过使用... $("#notes_p").html()
,但我只是空白了。与.text()
相同。为什么会这样?
如何正确获取innerHtml
?因为我想在.wrap()
中使用paragraph
,然后在内部使用文本。
答案 0 :(得分:4)
段落不会嵌套,因此浏览器会通过展开嵌套来修复您的HTML。
P
元素代表一个段落。它不能包含块级元素(包括P
本身)。
来自HTML5:
内容模型:
短语内容。
phrasing content是普通字符数据和phrasing elements:
或 em 或 strong ...
请注意,<p>
不是一个措辞元素。
浏览器(可能)最终会在DOM中使用此结构:
<p id="notes_p"></p>
<p>#1: dhhhhhhfdfffg</p>
<p> qqqqqqqqqqwwwwwwww wweeeeeeeeerr rrrrrrrtt tttttttt</p>
<p>#2: asldkflaksdjflks, lasjdlfjsaldfjasldjfoajsdkfjaslkdjlkfasjdfwoidjfalk,zmncv,mznoqeworjoiejflaksdlfjwaf</p>
结果是#notes_p
为空,$('#notes_p').html()
没有任何用处。您可以通过使用您喜欢的DOM检查器检查页面结构来验证这一点。
尝试用<p id="notes_p">
替换<div id="notes_p">
,然后事情就会开始变得有意义。
答案 1 :(得分:1)
您可以在此处查看http://jsfiddle.net/vbx3x/
$('p').each(function(index) {
alert(index + ': ' + $(this).text());
});