jQuery的追加()不写的关闭标签(jquery append() not writing clo

2019-09-22 04:48发布

我在用jQuery append方法奇怪的问题,谷歌浏览器它不是写关闭标签当元素是空的,但如果该元素包含的字符会。

如果我用这个代码:

$('#workZone .canvas').each(function(i) {
        $(this).append('<canvas id="test"></canvas>');
    });
}

我得到这个标记:

<canvas id="test">

如果我用这个代码:

$('#workZone .canvas').each(function(i) {
        $(this).append('<canvas id="test">i</canvas>');
    });
}

在我得到了我所期待的标记来获得:

<canvas id="test">i</canvas>

我想结束标记,很明显,但不必包括一次性字符。 到底是怎么回事?

这里是一个的jsfiddle测试案例: http://jsfiddle.net/YSDnk/

谢谢!

蒂姆

Answer 1:

尝试这个:

$(this).append('<canvas id="test"><!-- //comment --> </canvas>');

你应该把空空格的HTML注释。 通过这种方式,关闭标签将显示。



Answer 2:

不知道你是如何验证这一点,但你得到你的初始代码的完整标签。 当我看着督察看到你所看到的,但如果在控制台中运行以下命令:

console.log($("#workZone .canvas").html())

在打印出来,你会看到完整的HTML作为有效和正确关闭。



Answer 3:

这是较早发布相同的解决方案,但与标签之间的空白区域,如果注释并不能解决问题。

$(this).append('<canvas id="test">&nbsp</canvas>');


Answer 4:

如果你使用了什么:

$(this).append('<canvas id="test"/>');

这应该是等同于你所拥有的,所以我不知道为什么它会工作,我刚刚得知测试所有quircks。



文章来源: jquery append() not writing closing tag
标签: jquery append