在将变量作为参数传递时,在jQuery中转义字符串

时间:2017-07-20 09:28:39

标签: javascript jquery string escaping

我正在尝试在JavaScript函数中传递变量。问题是我没有弄清楚如何转义字符串以在双引号内发送该变量。有很多答案,但我无法正确使用它们。

UITableViewStylePlain

如何将参数传递给双引号内的for (var k = 0; k < districts[division].length; k++) { $('#district_list').append('<li class="byebooklist"><a href="javascript:getUniversity(' + districts[division][k] + ');">' + districts[division][k] + '</a></li>'); } 函数?

2 个答案:

答案 0 :(得分:2)

要解决此问题,您需要将函数参数中的值包装在引号中,但是您需要使用\'来转义它们:

for (var k = 0; k < districts[division].length; k++) {
  $('#district_list').append('<li class="byebooklist"><a href="javascript:getUniversity(\'' + districts[division][k] + '\');">' + districts[division][k] + '</a></li>');
}

然而,你可以避免这个问题并通过不在href中放任何JS来改进逻辑,而是使用不显眼的事件处理程序。正如您已经使用jQuery标记了问题,以下是如何做到这一点:

var html = districts[division].map(function(div) {
  return '<li class="byebooklist"><a href="#" data-division="' + div + '">' + div + '</a></li>';
}).join('');
$('#district_list').append(html);

$(document).on('click', '.byebooklist a', function(e) {
  e.preventDefault();
  getUniversity($(this).data('division'));
});

答案 1 :(得分:1)

尝试使用转义引号:

$('#district_list').append(
  '<li class="byebooklist"><a href="javascript:getUniversity(\''+districts[division][k]+'\');">'+districts[division][k]+'</a></li>'
);
//                                                           ^^                          ^^