您当前的方法有几个问题-
function
是一个关键字。您不能将其用作参数。
- 你使用它的方式,你需要这里的函数名。传递回调将无济于事。
与其将锚点作为字符串返回,不如将其作为元素返回 -
function createAnchor(text, clickHandler) {
var link = document.createElement('a'); // creates an anchor element
link.href = "#"; // sets the href
link.onclick = clickHandler; // sets the click handler
link.innerHTML = text; // assigns the inner html string
return link; // now return it
}
接着 -
var myAnchor = createAnchor('link', function () {
alert('test');
});
// Add this element wherever you want
请参阅有关createElement和element的文档。
编辑
如果您想将此锚元素作为子元素添加到现有 DOM 元素,请使用appendChild -
var myAnchor = createAnchor('link', function () {
alert('test');
});
document.getElementById('x').appendChild(myAnchor);
现场 JSFiddle。
编辑 2
如果你真的想要你的锚字符串,那么使用上面的函数创建锚元素,将它作为子元素附加到你想要的元素,然后innerHTML
在父元素上使用。该方法在这里演示 -
function createAnchorString(parentId, text, clickHandler) {
var link,
parent;
link = createAnchor(text, clickHandler); // call the previous function
parent = document.getElementById(parentId);
parent.appendChild(link);
return parent.innerHTML;
}
var myAnchorString = createAnchorString('x', 'link', function () {
alert('test');
});
alert(myAnchorString);
现场小提琴。