0

在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

4 回答 4

4

你不需要。创建元素并设置属性,那么您不必担心转义任何内容,引号和属性值都不会:

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

编辑:

带有图像元素的代码也:

$('<li>').append(
  $('<a>', { href: this.url }).append(
    $('<img>', { src: this.src, 'class': 'image0' })
  )
).appendTo($grouplist);
于 2012-11-21T21:12:52.750 回答
0

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

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

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

于 2012-11-21T21:12:25.267 回答
0

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

于 2012-11-21T21:16:30.533 回答
0

查看window.escape。还有encodeURIComponent,如果是用户输入,一般首选。

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

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

或者 Guffa 的方法:

$('<li>').append($('<a>', { href: encodeURIComponent(this.url) })).appendTo($grouplist);
于 2012-11-21T21:16:35.167 回答