您當前的做法有幾個問題 -
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