Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在锚定标记onclick事件中传递参数_Javascript - Fatal编程技术网

Javascript 在锚定标记onclick事件中传递参数

Javascript 在锚定标记onclick事件中传递参数,javascript,Javascript,我正在动态创建锚定标记,就像 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事件中,如果文本值在单词之间不包含任何空格或

我正在动态创建锚定标记,就像

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
事件中,如果文本值在单词之间不包含任何空格或间隙,我可以在console中获取文本值, 如果文本包含任何空格,则显示错误,如
意外标记非法

上面的代码可能会起作用,但这不是一个好的实践

试试这个,我更喜欢这样而且更干净

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;
};

您的文本值可能有一个不可见字符,导致
意外标记非法

应该解释更多关于非法字符的内容


可以帮助您尝试删除这些字符。

您可以发布一些已完成/生成的锚定标记的外观吗?您的文本值可能有一个尾随的不可见字符,或者它们是这些字符,而不是空格。了解JSON的源代码以及是否进行了任何字符串检查都会有所帮助。看到这个了吗
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;
};