有没有更好的方法来连接jQuery中具有“(例如HTML标记属性定义)”的字符串而不是转义引号?
Escapy示例:
$(this).prepend("<label for=\""+$(this).attr("id")+"\">"+"a"+"</label>");
答案 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!"""""""')
答案 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时,更常见的是需要在字符串中使用双引号而不是单引号,这样可以节省大量时间转义并提高可读性。此外,它还可以节省您的击键次数,而且不会有任何麻烦的换档键:)