【发布时间】:2019-01-31 17:30:56
【问题描述】:
有什么方法可以比较两个不同数组的索引号吗?
这是我想做的:
if i[0] == k[0] {
//give some action to k[0]
} else if i[1] == k[1] {
// give some action to k[1]
}
...等等。
我本可以将每个函数设置为 0 到 4 来解决我的问题,但是这样代码就会太长且不可读。我想尽可能优化我的代码。
我写了这样的代码,但这不能满足我的要求。当我将鼠标悬停在其中一个框组时,所有k 都会继续执行操作。
这是我的代码:
var i = $('#boxgroup').children()
var k = $('#panelgroup').children()
$(i).each(function() {
$(this).hover(function() {
if($(i == k)){
$(k).stop().animate({height: '500px'})}
}, function(){
$(k).stop().animate({height: '200px'})
})
})
#boxgroup{
width: 600px;
height: 200px;
border: 1px solid black;
clear: both;
}
.box {
width: 200px;
height: 50px;
border: 1px solid black;
float: left;
position: relative;
top: 0px;
margin: 10px;
}
.panelgroup {
clear: both;
}
.panel {
width: 200px;
height: 200px;
border: 1px solid gray;
top: 400px;
float: left;
}
<div id="boxgroup">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
<br>
<div id="panelgroup">
<div class="panel">panel1</div>
<div class="panel">panel2</div>
<div class="panel">panel3</div>
<div class="panel">panel4</div>
</div>
【问题讨论】:
-
旁注:
if($(i == k)){将始终分支到if的主体中,因为$(i == k)将始终为真。它评估i == k,产生true或false,然后将其传递给$(),它总是返回一个对象。对象是真实的。
标签: javascript jquery arrays indexing compare