jQuery .append()函数
为什么这样
$("#mydiv").append(""); $("#mydiv").append("- Hello
"); $("#mydiv").append("
"); alert($("#mydiv").html());
产生
并不是
- Hello
?
谢谢!
因为浏览器需要在每次追加后(重新)构建其DOM。 它不能知道结束标记将在稍后出现,并且开始标记本身是无效的,因此纠错会在这种情况下启动,其中关闭未关闭的元素。
这就是为什么innerHtml
和依赖它的东西(比如jQuery的append方法)不可靠的原因之一,应该尽可能避免。
Append()附加DOM节点,而不是HTML标签(即,它是一个对象追加,而不是一个字符串追加)。
附加
,您将创建一个包含开始和结束标记的整个UL节点。 调用被忽略。
因为您无法附加未完成的HTML片段,所以您总是附加元素。 对于你的情况你也可以
$("#mydiv").append("
"); $("#mydiv ul").append("Hello ");
要么
$("#mydiv").append("- Hello
");