2012-07-13 42 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