jQuery - 更好地连接有引号的字符串?

时间:2010-08-11 22:43:30

标签: javascript jquery string

有没有更好的方法来连接jQuery中具有“(例如HTML标记属性定义)”的字符串而不是转义引号?

Escapy示例:

$(this).prepend("<label for=\""+$(this).attr("id")+"\">"+"a"+"</label>");

5 个答案:

答案 0 :(得分:10)

您可以使用创建的对象方法($(html, props)),如下所示:

$('<label />', { for: this.id, text: 'a' }).prependTo(this);
//or:
$(this).prepend($('<label />', { for: this.id, text: 'a' }));

这样做的好处是可以在内部调用.text(),处理任何编码问题。此外,如果您正在执行 lot ,它会更快,因为HTML片段是一致的并且是缓存的,因此使用节点的克隆,而不是将字符串转换为文档片段每一次。你正在创建的元素越多,它对字符串方法的速度就越快。出于相同的缓存原因,元素越大(最多512个字符串),增益越大。

答案 1 :(得分:6)

你可以使用单引号作为主字符串,然后你不必转义双引号。

$(this).prepend('<label for="'+$(this).attr("id")+'">'+ a +'</label>');

答案 2 :(得分:5)

这就是为什么我主要使用单引号$('here')。当您使用不可避免地充满双引号的HTML时,不必担心。

$('""""No worries!"""""""')

Google JavaScript Style Guide同意。

答案 3 :(得分:1)

单引号?

$(this).prepend('<label for="'+$(this).attr("id")+'">'+'a'+'</label>');

或者,jQuery:

$("<label>").attr("for", this.id).text(a).prependTo(this);

答案 4 :(得分:1)

单引号肯定是要走的路。我建议在javascript中将它们用于所有字符串。特别是在使用jQuery时,更常见的是需要在字符串中使用双引号而不是单引号,这样可以节省大量时间转义并提高可读性。此外,它还可以节省您的击键次数,而且不会有任何麻烦的换档键:)