function SameH(i,j) {
alert(i);//i和j都传进来了啊
alert(j);
var a = document.getElementById(i);
var b = document.getElementById(j);
alert(a);
alert(b);
if (a.scrollHeight < b.scrollHeight) {
a.style.height = b.scrollHeight + "px";
}
else {
b.style.height = a.scrollHeight + "px";
}
}
window.onload = SameH("ldiv","rdiv");
我想用这个函数让左右两个div高度一样高,为什么 window.onload = SameH("ldiv","rdiv"); ,这里我传给 i 和 j
参数都成功了,html 里面也有这个两个 id 的 div ,但 var a 和 var b 为什么取不到元素,why?
为什么直接下面这样写,a 和 b 又能取到值?
(但是这样我一个页面只能比较两个div的高度,能传参数我可以方便的在一个页面比较多个div高度)
function SameH() {
var a = document.getElementById("ldiv");
var b = document.getElementById("rdiv");
if (a.scrollHeight < b.scrollHeight) {
a.style.height = b.scrollHeight+"px";
}
else {
b.style.height = a.scrollHeight+"px";
}
}
window.onload = SameH;
不要复制些jq的方法给我,我想知道上面代码是为什么..
<div id="ldiv" style="float:left;width:50%;height:200px;background:red">L</div>
<div id="rdiv" style="float:right;width:50%;background:blue">R</div>
function SameH(i,j) {
var a = document.getElementById(i);
var b = document.getElementById(j);
some code...
}
addLoadEvent(SameH("ldiv","rdiv"));
现在上面代码没问题了,参数能传了,就是div和js顺序的问题,js要在后面,但如果我js必须在div前面,有没办法检测下,读到dom再执行函数呢。
ok,你对了,我js加载完还没读到div就先执行了。刚才缓存没刷新。
现在问题是,假设我必须得把这段js放这两个div里面执行,有没什么方法先不直接执行,而是先加载dom后再执行呢?谢谢