【发布时间】:2010-02-13 00:46:43
【问题描述】:
我如何调用一个函数来计算页面加载后 id 为 'd1' 的 div 的数量。现在我在我的部分有它,但是在加载任何内容之前不执行脚本吗?因为如果我把代码放在 div 标签下面,它就可以工作......
【问题讨论】:
标签: javascript function call
我如何调用一个函数来计算页面加载后 id 为 'd1' 的 div 的数量。现在我在我的部分有它,但是在加载任何内容之前不执行脚本吗?因为如果我把代码放在 div 标签下面,它就可以工作......
【问题讨论】:
标签: javascript function call
首先应该最多有一个,因为 ID 不是要重复的。
其次,在直接的 Javascript 中,您可以调用 getElementById() 来验证它是否存在,或者调用 getElementsByTagName() 来遍历所有 div 并计算符合您条件的数字。
var elem = document.getElementById("d1");
if (elem) {
// it exists
}
或
var divs = document.getElementsByTagName("div");
var count = 0;
for (var i = 0; i < divs.length; i++) {
var div = divs[i];
if (div.id == "d1") {
count++;
}
}
但我不能保证这样做的正确行为,因为就像我说的那样,ID 是唯一的,当它们不是时,行为是未定义的。
【讨论】:
使用jQuery's document.ready() 或连接到 onLoad 事件。
【讨论】:
ID 应该是唯一的,所以答案应该是一个。
您可以在 DOM 加载后使用 <body onload='myFunc()'> 调用脚本。
【讨论】:
您需要将函数绑定到onload 事件,如下所示:
window.onload = function() {
var divElements = document.getElementById("d1");
var divCount = divElements.length;
alert(divCount);
};
作为记录,您应该只拥有一个具有该 ID 的 div,因为拥有多个是无效的并且可能会导致问题。
【讨论】: