【问题标题】:getelementbyID on load returns null加载时 getelementbyID 返回 null
【发布时间】:2012-08-07 07:39:31
【问题描述】:

我有一个简单的函数,它需要找到一个元素并在加载时设置它的高度:

function setGround() { 

document.getElementById('content').style.height = '40px';

        } 


document.onload = setGround(); 

但是,该函数在加载时返回“null”。我错过了一些明显的东西吗?是的,具有该 ID 的元素确实存在。

感谢您的帮助。

【问题讨论】:

    标签: javascript


    【解决方案1】:
    document.onload = setGround; 
    

    删除() 或函数立即运行,然后将document.onload 设置为函数的返回(在您的情况下为null undefined)。

    【讨论】:

    • 好吧,它现在不返回 null,但是高度样式不会添加到元素中:-s。知道为什么吗?
    • 再问一个问题。记得把你的 html 连同它一起发布,否则每个人都可能会迷路 ^_^ @SnippetSpace
    • @SnippetSpace:它是什么类型的元素?它有block 显示器吗?还是inline<span>
    • 尝试放入console.log,只是为了确保JS正在运行,如果是,那么你应该设置高度的行有问题
    • 这是一个为用户提供准确和有用信息的网站。说 "use document.ready" 对于初学者来说并不明显。 AFAIK,您试图引用 document.onreadystatechange
    【解决方案2】:

    请忽略,对不起


    从技术上讲,在设置 .onload 时,您应该将其设置为要运行的 javascript 的字符串,所以您应该这样做

    document.onload = "setGround()";
    

    这可能是你的问题,可能只是一个不影响它的小错误,但认为它应该有所帮助

    【讨论】:

    • Eval 是少数 JS 方法之一,我会说它就像 100% 的时间舔撒旦。
    • How is eval evil@AlexColeman
    • 除了它根本不起作用之外:jsfiddle.net/GGVNz(无法与 document.onload 一起使用,可能是因为 jsfiddle,但它不应该有所作为)。 DOM 属性 需要一个函数,而不是字符串。如果你分配一个函数引用,它就可以工作。
    • 嗯。我看着这里(w3schools.com/jsref/event_onload.asp),它说你应该给它一个字符串;奇怪的。对不起
    • 如果你使用的是 Ruby,你可以使用 instance_eval 或 class_eval,当然 javascript 不是 ruby​​,所以在 js 中远离 eval。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    相关资源
    最近更新 更多