jQuery .append()命令标签不正确?

时间:2014-07-18 17:03:27

标签: jquery

还有关于追加的其他问题,但这是关于标记顺序的。该函数适用于内容,但似乎在打开新标签之前关闭标签。在此代码中,单词正确放置,但p标记不在span标记内。

HTML:

<div></div>

JS:

$(document).ready(function () {
        $("div").append('<span>begin');
        $("div").append('<p>middle</p>');
        $("div").append('end</span> ');
});

http://jsfiddle.net/dpXv2/1

我想用一个循环在跨度内创建多个p,我该如何解决这个问题呢?

编辑:http://jsfiddle.net/dpXv2/3/这应该更加清晰,我删除了p标记。

2 个答案:

答案 0 :(得分:0)

你的例子工作正常。我不确定你在问什么。

根据浏览器的不同,如果

,它们有时会向页面添加结束标记
  • 没有结束标记
  • 父级中的标记不允许在该特定父标记

此外,我认为您不能在p内加span,但您可以在span内加p

span适用于p代码中与该代码相关的任何样式。

答案 1 :(得分:0)

您需要将p附加到范围。 例如

$("div").append('<span>begin</span>');
$("div span").append('<p>middle</p>');
$("div span").after('end');

这是因为当您添加第一个跨度时,追加会添加完整标记。

编辑: 我的错误,后来把结束了;跨度后的文字 - 很明显。你可以使用:

$("div span").html($("div span").html()+'end');

代替