Javascript 计算DOM元素上的Div
有人能帮我理解为什么下面的方法不起作用吗?如果一个元素中有超过5个div,我希望得到trueJavascript 计算DOM元素上的Div,javascript,Javascript,有人能帮我理解为什么下面的方法不起作用吗?如果一个元素中有超过5个div,我希望得到true var hasMorethanFiveDiv = function(domElement, divCounter) { // div counter variable(divcounter) divCounter = divCounter || 0; // if the current node has div if(domElement.tagName === "DIV"){
var hasMorethanFiveDiv = function(domElement, divCounter) {
// div counter variable(divcounter)
divCounter = divCounter || 0;
// if the current node has div
if(domElement.tagName === "DIV"){
divCounter++;
}
//iterate over children nodes
for(var i=0; i<domElement.children.length; i++){
// invoke hasMorethanFiveDiv on a child element.
hasMorethanFiveDiv(domElement.children[i], divCounter);
}
//return true if divCounter is bigger than 5
return divCounter >= 5;
};
var hasMorethan FivedIV=函数(doElement,divCounter){
//div计数器变量(divcounter)
divCounter=divCounter | | 0;
//如果当前节点具有div
如果(doElement.tagName==“DIV”){
divCounter++;
}
//迭代子节点
对于(var i=0;i=5;
};
就是这一行:
hasMorethanFiveDiv(domElement.children[i], divCounter);
divCounter不是通过引用传递的,而是通过值传递的。这意味着,如果在函数中修改了divCounter,则不会返回更新
//变量按值发送
var值=1;
var addValue=函数(arg){
arg++;//arg值现在为2,但仅适用于此函数的作用域
}
附加值(value);
警报(值);//警报1不是2。。。
//对象通过引用发送
var obj={
价值:1
}
var addValue2=函数(arg){
参数值++;
}
addValue2(obj);
alert(obj.value);//alert 2
您没有捕获for循环中的返回值这将适用于嵌套div,更改如下:@ignacykasperowicz.good job.@GinacyKasperowicz.谢谢帮助。但是对于非嵌套div呢?像这样,它似乎不适用于此。谢谢您,aprovent。这很有帮助。