【发布时间】:2018-04-26 16:20:27
【问题描述】:
function insideNest(theindex, count) {
count++;
console.log("(\n)");
if (theindex == null) {
theindex = $(document);
}
$(theindex).children("#nest").each(function() {
$(this).children("#value").each(function() {
$(this).children("input").each(function() {
for (i = 0; i < count; i++) {
console.log("\t");
}
console.log($(this).val() + "\n");
});
});
insideNest($(this));
});
console.log(")\n)");
}
$(document).ready(function() {
insideNest($(this), -1);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="nest">
<div id="value">
<input type="text" id="hasvalue" value="level1" />
</div>
<div id="value">
<input type="text" id="hasvalue" value="level1" />
</div>
<div id="value">
<input type="text" id="hasvalue" value="level1" />
</div>
<div id="nest">
<div id="value">
<input type="text" id="hasvalue" value="level2" />
</div>
<div id="value">
<input type="text" id="hasvalue" value="level2" />
</div>
<div id="nest">
<div id="value">
<input type="text" id="hasvalue" value="level3" />
</div>
</div>
<div id="value">
<input type="text" id="hasvalue" value="level2" />
</div>
</div>
<div id="value">
<input type="text" id="hasvalue" value="level1" />
</div>
<div id="value">
<input type="text" id="hasvalue" value="level1" />
</div>
</div>
我的输出:
(
)
)
)
预期输出:
level1
level1
level1
(
level2
level2
(
level3
)
level2
)
level1
level1
我想获取input 字段中的值,括号仅在嵌套#nest 时才开始。当javascript找到#nest时,我尝试调用相同的函数,并在找到#value时打印输出。我认为诀窍是只找到nest 的一级子级
小提琴:https://jsfiddle.net/2fq8u8wk/
【问题讨论】:
-
您在文档中重复使用 ID,因此您的开端并不理想。我不知道 jQuery 是否只使用
.children()强制执行一个结果。那些应该是一个类。
标签: javascript loops recursion