2012-07-13 32 views
0

我想添加一個鏈接到一個頁面我不能直接訪問HTML,除了頁腳。使用Javascript,我試圖使用createElement()方法。我已成功使用相同的過程在標題中創建一個link元素。腳本沒有創建<a>元素

function createForgotPasswordLink(){ 
    var pwlink=document.createElement("a") 
    pwlink.setAttribute("id", "forgotPssLink") 
    pwlink.setAttribute("href", "http://www.mysite.com/page.aspx") 
    pwlink.innerHTML("Forgot Password?") 
    document.getElementsByTagName("body")[0].appendChild(pwlink) 
} 
createForgotPasswordLink(); 

兩個腳本之間的唯一區別是,使得link元素時,我appendChild()headbody,我不設置link元素的innerHTML正如我在上面a元素都做。出於某種原因,上述代碼不起作用。即使在刪除第5行之後。

+0

你會得到什麼錯誤?身體尚未加載? – Musa 2012-07-13 01:02:31

+1

Do alert(document.getElementsByTagName(「body」)[0])output Object? – mariusnn 2012-07-13 01:02:48

+1

'innerHTML'不是一個函數。用'='設置它。我不知道爲什麼這兩個答案說,所以被刪除... – Ryan 2012-07-13 01:05:34

回答

5

您正在使用屬性.innerHTML之類的方法。不要使用parens,請使用=。另外,我不打擾設置屬性,直接設置屬性值。該代碼更直接,更易於閱讀:

function createForgotPasswordLink() { 
    var pwlink = document.createElement("a"); 
    pwlink.id = "forgotPssLink"; 
    pwlink.href = "http://www.mysite.com/page.aspx"; 
    pwlink.innerHTML = "Forgot Password?"; 
    document.body.appendChild(pwlink) 
} 
+0

在原帖的結尾處,我提到我曾嘗試運行相同的代碼sans第5行。我不認爲我的'innherHTML'用法開始是正確的。不幸的是,你的建議沒有奏效。考慮到其他評論者之一,我對'document.body'運行了警報,並且打印出了'null'。如果我把我的HTML標記放在OP中,它會有幫助嗎?它是一個非常基本的biolerplate html 5模板,但是如果需要的話,我會把它放在上面。 – smulholland2 2012-07-13 19:50:49

+0

將腳本移動到外部文檔中的技巧。使用您提供的相同代碼。謝謝。 – smulholland2 2012-07-13 20:08:59

相關問題