如果我们在一个p标签内放置一个div,Jquery html()方法不起作用?

时间:2013-09-23 07:16:43

标签: javascript jquery html

这是我的HTML:

  <div class="accor">
  </div>
  <div class="accordionContentTwoCol">
   <p class="noEdit">
     <div>   name : </div>
  </p>
 <div>

我需要找到accordionContentTwoCol div的html内容(我只能访问accor)。
如果我尝试在accordionContentTwoCol div中打印html,如下所示:

alert("html inside accordionContentTwoCol :"+$('.accor').next().html());

它输出如下:
enter image description here

虽然accordionContentTwoCol内的HTML是:

<p class="noEdit">
         <div>   name : </div>
</p>

为什么会这样?

4 个答案:

答案 0 :(得分:5)

查找允许的包含关系的权威位置是HTML规范。例如,请参阅http://www.w3.org/TR/html4/sgml/dtd.html。它指定哪些元素是块元素,哪些元素是内联元素。对于这些列表,请搜索标记为“HTML内容模型”的部分。

对于P元素,它指定以下内容,表示P元素仅允许包含内联元素。

<!ELEMENT P - O (%inline;)*            -- paragraph -->

这与http://www.w3.org/TR/html401/struct/text.html#h-9.3.1一致,它表示P元素“不能包含块级元素(包括P本身)。”

Why <p> tag can't contain <div> tag inside it?

答案 1 :(得分:1)

您使用的标记是错误的。 <div>无法与<p>代码嵌套。

答案 2 :(得分:0)

尝试使用

<div style="display: inline">

否则,请使用<span>代替<div>

答案 3 :(得分:0)

来自HTML 4.01 specification section 9.3.1

P元素代表一个段落。它不能包含block-level elements(包括 P本身)。