的document.getElementById();没有第三次工作

时间:2012-03-22 08:10:57

标签: javascript jquery html

确定Minheight并通过javascript输入。它成功运行了两次,但相同的代码在第三次调用时不起作用。这个(document.getElementById(“rightadmin”)。style.minHeight = wrapHeight +'px';)不起作用。更令人惊奇的是,如果我让第3个提升到第2个位置然后它起作用,然后第3个不起作用。所以基本上我在第二个之后放的东西都不起作用。

JavaScript的:

function height(){
var dheight= ($(document).height());
var wheight= ($(window).height());
if(dheight>wheight){ 
var wrapHeight= dheight;
}
else {

var wrapHeight=wheight; 
}
document.getElementById("iframeArea").style.minHeight=wrapHeight+'px';
document.getElementById("dailySchedule").style.minHeight=wrapHeight+'px';
document.getElementById("rightadmin").style.minHeight=wrapHeight+'px';
}

HTML:

<body onload="height();">
   <!--Start of iframeArea-->
   <div class="iframeArea" id="iframeArea">
      <div class="btnRight" id="rightadmin">

      </div>
     <!--End of btnRight-->
  </div>
<!--End of iframeArea-->

5 个答案:

答案 0 :(得分:3)

您确定dailySchedule ID存在吗?如果不是,您的函数将抛出错误,并且不会执行最后一行。

答案 1 :(得分:1)

可能是由于范围问题 - 变量wrapHeight在两个区块中是本地的。

不应对结果产生任何影响,但这段代码更优雅地分配第三个变量:

var dheight = $(document).height();
var wheight = $(window).height();
var wrapHeight = (dheight > wheight) ? dheight : wheight;

正如所有其他人已经说过的那样,还有其他问题。

答案 2 :(得分:0)

我在页面上看不到带有id = dailySchedule 的元素。如果页面上没有包含该id的元素,则应该收到错误。检查浏览器控制台是否有javascript错误。

答案 3 :(得分:0)

你说<body onload='height()'>并且从不检查文档是否准备就绪,然后可能没有id为rightadmin的div ... 尝试转换为jQuery并执行类似的操作并删除onload属性。

(文档)$。就绪(函数(){

//你的代码在这里

}

答案 4 :(得分:0)

我现在使用以下代码。它适用于所有事情。

$(function(){   
  var dheight= ($(document).height());
  var wheight= ($(window).height());
  var wrapHeight = (dheight > wheight) ? dheight : wheight;
  $('.dailySchedule').css({ "min-height": wrapHeight + 'px' });
  $('.iframeArea').css({ "min-height": wrapHeight + 'px' });
 $('.btnRight').css({ "min-height": wrapHeight + 'px' });

});

感谢您的回答