【发布时间】:2012-09-12 22:13:49
【问题描述】:
我有一个 for 循环,我对控制台的跟踪显示我的变量是正确的。 Epid 是用另一种方法确定的。
for (var i=0; i< $('#slideshow > div').length; i++) {
var divid = $('#slideshow > div').eq(i);
console.log(divid)
console.log(epid)
if ( divid == epid ) {
alert("equal " + epid);
} else {
console.log("blah");
};
};
在循环中的某一时刻,控制台显示元素相同,但没有弹出警报。 控制台:
<div style="height: 100%; display: none; " id="ep5">…</div>
<div style="height: 100%; display: none; " id="ep6">…</div>
blah
<div style="height: 100%; display: none; " id="ep6">…</div>
<div style="height: 100%; display: none; " id="ep6">…</div>
blah
<div style="height: 100%; display: none; " id="ep7">…</div>
<div style="height: 100%; display: none; " id="ep6">…</div>
blah
【问题讨论】:
-
你真的不应该写这样的循环。至少,将
$('#slideshow > div')的值保存在一个变量中。根据您的代码编写方式,DOM 查找将在循环的每次迭代中进行 两次。 -
您想在
for循环中寻找什么?您在寻找特定的 DOM 对象吗?您是否希望匹配 DOM 对象的内容?究竟是什么?
标签: javascript jquery if-statement for-loop