jQuery .append()函数

为什么这样

$("#mydiv").append("
    "); $("#mydiv").append("
  • Hello
  • "); $("#mydiv").append("
"); alert($("#mydiv").html());

产生

  • Hello
  • 并不是

    • Hello

    谢谢!

    因为浏览器需要在每次追加后(重新)构建其DOM。 它不能知道结束标记将在稍后出现,并且开始标记本身是无效的,因此纠错会在这种情况下启动,其中关闭未关闭的元素。

    这就是为什么innerHtml和依赖它的东西(比如jQuery的append方法)不可靠的原因之一,应该尽可能避免。

    Append()附加DOM节点,而不是HTML标签(即,它是一个对象追加,而不是一个字符串追加)。

    附加

      ,您将创建一个包含开始和结束标记的整个UL节点。 调用被忽略。

      因为您无法附加未完成的HTML片段,所以您总是附加元素。 对于你的情况你也可以

       $("#mydiv").append("
        "); $("#mydiv ul").append("
      • Hello
      • ");

        要么

         $("#mydiv").append("
        • Hello
        ");