2

我正在动态创建锚标签

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.

4

2 回答 2

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;
};
于 2013-08-07T08:14:58.553 回答
0

您的文本值可能包含导致Unexpected token ILLEGAL.

“Unexpected token ILLEGAL”没有明显的原因应该更多地解释 ILLEGAL 字符。

从 JavaScript 字符串中删除零宽度空格字符可以帮助您尝试删除这些字符。

于 2013-08-07T08:25:00.277 回答