Javascript 使用href属性中的参数调用函数
我使用innerHTML属性中的一个参数调用函数,但未显示任何内容这是我的代码: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 =
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代码相同的问题。