Javascript转义字符href html

时间:2012-11-21 21:09:51

标签: javascript html

如何在href,img属性等中包含变量时如何转义字符。这似乎不起作用:

var myData = JSON.parse(jsonString2);
var $grouplist = $('#groups');
$.each(myData, function() {
 $('<li><a href="'+ this.url + '"/><img src="'+ this.src + '" class="image0"/></a></li>').appendTo($grouplist);
 });
}

以上整个功能。

$('<li><a href=\"' + this.url + '\"</a></li>').appendTo($grouplist);

4 个答案:

答案 0 :(得分:4)

你不需要。创建元素并设置属性,然后您不必担心转义任何内容,既不引用引号,也不需要属性值:

$('<li>').append($('<a>', { href: this.url })).appendTo($grouplist);

编辑:

带有图像元素的代码:

$('<li>').append(
  $('<a>', { href: this.url }).append(
    $('<img>', { src: this.src, 'class': 'image0' })
  )
).appendTo($grouplist);

答案 1 :(得分:0)

只有在具有相同引号时才需要转义。在你的情况下,这将工作:

$('<li><a href="' + this.url + '"</a></li>').appendTo($grouplist);

因为双引号不会干扰单引号。

答案 2 :(得分:0)

您不需要转义双引号,因为它们在单引号内。此外,您没有完成打开标签。

答案 3 :(得分:0)

结帐window.escape。还有encodeURIComponent,如果是用户输入,通常是首选。

正如其他人指出的那样,你不需要在那里逃避双引号。所以试试这个:

$('<li><a href="' + encodeURIComponent(this.url) + '"></a></li>').appendTo($grouplist);

或Guffa的方法:

$('<li>').append($('<a>', { href: encodeURIComponent(this.url) })).appendTo($grouplist);