JS将字符串附加为函数参数会产生奇怪的输出

时间:2016-10-29 00:12:12

标签: javascript jquery

我有一个创建和“a”标签的函数,并使用Jquery的.innerHTML函数将其附加到div。我试图定义函数onclick将调用并传递一个字符串作为它的参数。但是,当运行代码时,字符串会更改,空格将替换为此(=“”)。这很奇怪,因为在标签的其他地方使用相同的字符串并正确打印。这是我的代码:

var companies = companyString.split(",");
var dropDown = document.getElementById('myDropdown');

for (var item in companies){
    var str = "World Wrestling Entertainment";  //example

    dropDown.innerHTML = dropDown.innerHTML + "<a href='#' onclick='filterCompany('"+str+"')'>"+str+"</a>";
}

任何想法?

感谢

这会在html中吐出:

<a href="#" onclick="filterCompany(" world="" wrestling="" entertainment')'="">World Wrestling Entertainment</a>

1 个答案:

答案 0 :(得分:0)

你刚刚把引号混淆了一下。这应该有效:

var companies = companyString.split(",");
var dropDown = document.getElementById('myDropdown');

for (var item in companies){
    var str = "World Wrestling Entertainment";  //example
    dropDown.innerHTML = dropDown.innerHTML + '<a href="#" onclick="'+'filterCompany('+"'"+str+"'"+')'+'">'+str+'</a>';
}