我正在动态创建锚标签
for (var i = 0; i < json.length; i++)
{
<td><a href='#' id=" + json[i].id + " onclick=getId('" + json[i].id + "','"+ json[i].text +"')>" + json[i].text + " </a></td>
}
并在我已定义的onclick
函数中
function getId(ID,text)
{
console.log(ID);
console.log(text);
}
在此onclick
事件中如果文本值在单词之间不包含任何空格或间隙,我可以在控制台中获取文本值,
在案例中如果文本包含任何空格,那么它显示的错误类似于Unexpected token ILLEGAL
。
答案 0 :(得分:1)
<a href='#' id=" + json[i].id + " onclick=getId('" + json[i].id + "','"+ json[i].text +"')>" + json[i].text + " </a>
以上代码可能有用,但恕我直言,这不是一个好习惯。
试试这个,我更喜欢这种方式,更清洁。
var a = document.createElement('a');
a.setAttribute('id',json[i].id);
a.setAttribute('href',"#");
a.innerHTML = json[i].text;
a.onclick = function(e) {
getId(json[i].id, json[i].text);
e = e || window.event;
e.cancelBubble = true;
if (e.stopPropagation) {
e.stopPropagation();
}
return false;
};
答案 1 :(得分:0)
您的文本值可能包含导致Unexpected token ILLEGAL
的隐藏字符。
No visible cause for "Unexpected token ILLEGAL"应该解释有关ILLEGAL字符的更多信息。
Remove zero-width space characters from a JavaScript string可以帮助您尝试删除这些字符。