Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修复document.body为null的错误_Javascript_Jquery_Null_Width - Fatal编程技术网

Javascript 如何修复document.body为null的错误

Javascript 如何修复document.body为null的错误,javascript,jquery,null,width,Javascript,Jquery,Null,Width,我的javascript中有一个document.body为null错误,因为我使用: $(window).width() 作为分配给my中变量的值 $(document).ready(function(){}); 我将非常感谢任何能在这方面帮助我的人 问候 编辑:如果这一切都不清楚,很抱歉。我有一个演示: 起初,主题将被加载,但随后会变为白色(由于错误),但当您重新加载时,您可以看到整个主题,因为这样他就知道$(window.width()的值 我使用这段代码来居中布局(css不可能,因为

我的javascript中有一个document.body为null错误,因为我使用:

$(window).width()
作为分配给my中变量的值

$(document).ready(function(){});
我将非常感谢任何能在这方面帮助我的人

问候

编辑:如果这一切都不清楚,很抱歉。我有一个演示: 起初,主题将被加载,但随后会变为白色(由于错误),但当您重新加载时,您可以看到整个主题,因为这样他就知道$(window.width()的值

我使用这段代码来居中布局(css不可能,因为左侧也需要一个宽度)

我在load函数中调用函数
positionerElement()

抱歉,如果这不清楚,我认为没有必要把演示放在这里,也没有必要把代码放在这里。
然而,我要感谢那些试图帮助我的人

我同意outis-我们需要更多的代码

也就是说:

  • 您确定在$(document).ready函数中完成了所有工作吗
  • 您是否确实有一个格式正确(且闭合)的body标记和有效的xhtml
  • 所有浏览器都会出现这种情况吗
一项建议:

如果将
positionerElement
函数也放在$(document.ready)函数中,问题是否仍然存在?我想知道浏览器是否在加载文档之前评估document.body

$(document).ready(function() {
    function positioneerElement(){      
    $breedte = (document.body.clientWidth - 1124) / 2;
    $('#bg_left').css({
        'width': $breedte
    });
    $('.container').css({
        'margin-left': $breedte
    });

    // your other code, including
    positioneerElement();
});

好吧,根据你给我的信息,尸体可能还没有装好。更多详情请参见此处:


我想说得更多,但我也同意outis的观点,即您需要发布更多代码供我们调试。

确保在包含
标记(例如在就绪回调中)和/或使用标准模式doctype声明后只调用
$(window).width()
。无论如何,你都应该这么做:怪癖模式太糟糕了


问题是,要在Quirks模式下读取视口大小,jQuery必须查看
document.body.clientWidth
,而不是
document.documentElement.clientWidth
。如果尚未启动
,则不存在
文档.body
节点。

必须包含jquery.js,而不是jquery.min.js 看起来里面有虫子
这对我来说很有用

请发布一个最简单的测试用例:足够完整的代码并产生错误,但不要更多。你们为什么不学着否决这样的问题呢?!将鼠标悬停在向下箭头上方,阅读工具提示,然后完成你该死的工作。@Josh:我想可能有点苛刻。我想我们可以先问更多的信息?艾尔顿可能真的认为不需要更多的信息;希望他能更新这个问题。但通过向下投票,人们不太可能试图帮助他,他也不太可能得到答案。我以为SO社区是来帮助人们的,而不是斥责和惩罚他们的错误沟通……拜托@Damovisa,你知道这一切都是关于rep;)“投票决定改过自新”。@贾斯汀-哦,伙计,你说得对。对不起,我在想什么?:)我添加了一些更多的信息,我在ready函数中完成了这一切是的,我的代码应该是有效的xhtml&这在每个浏览器中都会发生非常感谢。显然这一切都与此有关。我觉得很奇怪,因为在其他项目中,我不需要将函数放在document.ready中。干杯
$(document).ready(function() {
    function positioneerElement(){      
    $breedte = (document.body.clientWidth - 1124) / 2;
    $('#bg_left').css({
        'width': $breedte
    });
    $('.container').css({
        'margin-left': $breedte
    });

    // your other code, including
    positioneerElement();
});