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

时间:2014-09-01 17:04:43

标签: javascript

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

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


 function sayHello(myVar)
{   
        window.alert(myVar);
}

3 个答案:

答案 0 :(得分:4)

试试这个:

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 += something。这将删除添加到htmlElement
  • 中的先前元素的所有数据和事件处理程序

答案 1 :(得分:0)

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

return "<a  hreg ='javascript:void(0)' onclick='showErrorPopup(\""+message+"\")'>"+value+"</a>";
function showErrorPopup(message){
    alert(message);
}
  

我曾经使用\来转义双引号

答案 2 :(得分:-1)

试试这个

var myVar = "Ali";

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

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