我已经生成了一组像这样的DIV。
<div id="donkey1" class="target"></donkey>
<div id="donkey2" class="target"></donkey>
<div id="donkey3" class="target"></donkey>
然后我在第一个上设置一个类,然后尝试将它传播到下一个类。
$("#donkey1").addClass("active");
...
$("#donkey1").on("keyDown", function() {
.removeClass("active")
.getNextTag().addClass("active");
});
我的问题是,我希望通过任何 DIV(当然是某个类)进行传播,而且我无法在 getNextTag 方法。
我会这样开始(但仍未实现)。
$("#donkey1").addClass("active");
...
$(".target").on("keyDown", function() {
.removeClass("active")
.getNextTag().addClass("active");
});
如何实现“让DIV紧挨着这个”?
请注意,我更喜欢不来使用索引。它只是因为我缺乏想象力。实际的ID很可能是非常不规则的。
答案 0 :(得分:1)
您需要尝试这种方式:
$(".target").on("keyDown", function() {
//assuming you want to remove on the current element.
$(this).removeClass("active").next().addClass("active");
//Just on the safer side if you have other siblings which are not `.target` use a selector in .next()
$(this).removeClass("active").next('.target').addClass("active");
});
使用 .next() 转到下一个div,.target
选择目标,$(this)
选择当前元素。
答案 1 :(得分:1)
为什么不能只使用jQuery的next()运算符?
获取该组中每个元素的紧随其后的兄弟 匹配的元素。如果提供了选择器,它将检索下一个选择器 兄弟姐妹只有匹配那个选择器。
您可以在其中添加选择器,例如next(".target")
答案 2 :(得分:1)
如果您正在使用jQuery选择元素并想对下一个元素执行某些操作,那么您可以使用恰当命名的next()
方法:
$('.target').on('keyDown', function() {
$('.active').removeClass('active').next().addClass('active');
}
当你得到最后一个元素时要小心;你需要为这种情况进行某种检查。