javascript - 用 eq() 或 index 得到不同的结果
问题描述
我试图按按钮的顺序仅显示相应的元素,当我单击某个按钮时,它只显示一个元素并隐藏其他元素,我必须这样做,我有 3 个元素,当我按下第一个“ eq (0)" 它显示第一个但也显示最后一个,当我按下第二个 "eq (1)" 它也显示第二个但也显示最后一个,当我按下最后一个 "eq (2)" 它显示什么它应该,它显示自己(最后一个)!有什么问题?
$(".button").click(function(event) {
event.stopImmediatePropagation();
var index = $(".button").index(this);
$(".div-to-show").eq(index).css('display','block');
$(".div-to-show").eq(!index).css('display','none');
});
解决方案
使用.eq()
和.not()
与您创建的索引的示例。
$(function() {
$(".button").click(function(event) {
event.stopImmediatePropagation();
var index = $(".button").index(this);
console.log(index);
$(".div-to-show").not(":eq(" + index + ")").hide();
$(".div-to-show").eq(index).show();
});
});
.div-to-show {
padding: 10px;
margin: 6px;
border: 1px solid #ccc;
border-radius: 6px;
}
.button {
padding: 4px;
margin: 3px;
border: 1px solid #222;
border-radius: 3px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="div-to-show">
Div 0
</div>
<span class="button">Toggle</span>
<div class="div-to-show">
Div 1
</div>
<span class="button">Toggle</span>
<div class="div-to-show">
Div 2
</div>
<span class="button">Toggle</span>
<div class="div-to-show">
Div 3
</div>
<span class="button">Toggle</span>
参考:
希望有帮助。
推荐阅读
- typescript - 在 Jest + TS 中模拟多个导出
- c# - Visual Studio 2019 无法使用 GPU 使用率
- css - 延迟加载字体
- apache-flink - Flink Stateful Functions URL Path Template 支持哪些模板参数?
- casting - Unsigned char* 和 reinterpret_cast 问题
- azure - MSAL(桌面和移动)未使用正确的 redirect_uri
- django - Django/Docker:未检测到迁移且未应用
- mysql - AddWithValue MySqlType.Decimal
- django - 调试为假时,django 信号 post_save 不起作用
- arrays - Left Shift/ Right Shift an array using two pointers in C