Javascript 使用href属性中的参数调用函数

Javascript 使用href属性中的参数调用函数,javascript,Javascript,我使用innerHTML属性中的一个参数调用函数,但未显示任何内容这是我的代码: var myVar="Ali"; summaryPanel.innerHTML += "<a href='javascript:sayHello("+ myVar+");'>" + "Say Hello" + "</a>"; function sayHello(myVar) { window.alert(myVar); } 试试这个: var a =

我使用innerHTML属性中的一个参数调用函数,但未显示任何内容这是我的代码:

var myVar="Ali";
      summaryPanel.innerHTML += "<a href='javascript:sayHello("+ myVar+");'>" + "Say Hello" + "</a>";


 function sayHello(myVar)
{   
        window.alert(myVar);
}
试试这个:

var a = document.createElement('a');
a.appendChild(document.createTextNode('Click me'));
a.addEventListener('click', function() {
    sayHello(myVar);
}, false);
summaryPanel.appendChild(a);
一些注意事项:

避免使用需要全局函数的内联事件处理程序 避免污染全球范围 避免使用不受信任的变量从字符串中构建html元素可能是myVar的情况。这种做法容易受到html注入的影响。 避免htmlElement.innerHTML+=某些内容。这将删除添加到HtmleElement中以前元素的所有数据和事件处理程序 试试这个

var myVar = "Ali";

summaryPanel.innerHTML += "<a href='javascript:void(0)' onclick='sayHello("+myVar+")' />";

function sayHello(param){
        windows.alert(param);
}

要使用href中带参数的函数,您需要转义双引号,请参考以下语法

return "<a  hreg ='javascript:void(0)' onclick='showErrorPopup(\""+message+"\")'>"+value+"</a>";
function showErrorPopup(message){
    alert(message);
}
我使用\来转义双引号的位置


您需要为该函数设置触发器。现在,您所做的只是创建一个HREF,没有实际的触发器,也没有结束标记。假设可以单击链接并单击它:查看控制台。您将看到一个错误。提示:字符串文字,引号。嘿,兄弟,看看我的答案。它可能会对你有所帮助。或者,如果上面的注释对你不重要,请使用。非常感谢Oriol的注释,它帮助我解决了与OP代码相同的问题。