你当前的方法存在几个问题 -
function
是一个关键字,不能用作参数。
- 你使用的方式需要函数名。传递回调函数是没有帮助的。
不要将你的锚点返回为字符串,而应该返回为元素 -
function createAnchor(text, clickHandler) {
var link = document.createElement('a');
link.href = "#";
link.onclick = clickHandler;
link.innerHTML = text;
return link;
}
然后 -
var myAnchor = createAnchor('link', function () {
alert('test');
});
请参阅有关
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);
parent = document.getElementById(parentId);
parent.appendChild(link);
return parent.innerHTML;
}
var myAnchorString = createAnchorString('x', 'link', function () {
alert('test');
});
alert(myAnchorString);
实时演示。