我正在尝试使用单击功能在p内创建一个div。但似乎没有关闭我的p元素。显然,在阅读this之后,如果p元素后面紧跟一个div,那么它最后不需要结束标记。
<div class="main"></div>
<div class="content-list"><ul class="information"> </ul></div>
我将使用此功能附加到:
var $contentHandler = $(".content-list");
var $mainHandler = $(".main");
var $infoHandler = $(".information");
var circleCounter = 1;
$mainHandler.click(function() {
var htmlString = "<li class='" + circleCounter + "'> <p class='circle-color'> var color = <div class='circle-color-input' contentEditable autocorrect='off'> type a color</div> ; </p> <p class='circle-radius'> </p> <p class='circle'> </p> </li>"
$infoHandler.append(htmlString);
circleCounter++;
});
以下是
的代码http://jsfiddle.net/mauricioSanchez/tJkex/
有什么方法吗?
谢谢!
答案 0 :(得分:3)
你很简单 在div
内不能<{1}},因为p
元素中允许的唯一内容是短语内容(如上所述)在您阅读的文档中),通常表示内联元素。这就是为什么在未关闭的p
之后紧跟div
(或任何其他流元素,例如ul
或figure
)将隐式关闭p
并创建作为兄弟姐妹,而不是孩子,在DOM中。
您可以使用p
代替,并在需要时将其显示为块:
span
答案 1 :(得分:2)
div
不允许在p
内,请参阅
Why <p> tag can't contain <div> tag inside it?
浏览器认为您忘记附上p
标记,因此它会在div
之前隐式添加结束标记。
答案 2 :(得分:-1)
我想你想要css属性溢出:滚动?