您当前的做法有几个问题 -
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);
Live JSFiddle。
EDIT 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);
Live Fiddle。
功能是保留关键字,用别的像functionName。 – BenM
你试过我最近的更新吗?此外,您应该更改问题的标题,以便更准确地确定您需要返回将包含事件功能的HTML代码。 – kube