在我的jQuery为什么indexOf没有找到关键从我的数组
In my jQuery why indexOf does not find key from my array?
我一直在试着让它工作,但似乎没有什么帮助。
我有两张图片都在图片数组中。我想做的是,当你点击上一张图片时,下一张就会出现。我很确定问题出在indexOf
上,因为它每次都返回-1。
如果我替换line:
pictures[listIndex+1].show("drop", {direction: "up"}, 1000);
<——不工作
:
pictures[1].show("drop", {direction: "up"}, 1000);
<——它工作,但不是很有用。
我希望你能理解我的问题是什么,并为我糟糕的英语感到抱歉。我真的很感激你的帮助。
$(document).ready(function(){
var pictures = [$("#link"), $("#italy1")];
pictures[1].hide();
$("#link").click(function(){
var listIndex = pictures.indexOf($(this));
pictures[listIndex+1].show("drop", {direction: "up"}, 1000);
});
$("#italy1").click(function(){
$(this).hide("drop", {direction: "up"}, 1000);
});
});
这是因为您在jQuery对象中包装元素。即使两个jQuery对象包含相同的元素,它们仍然是两个独立的对象,所以indexOf
方法不能通过寻找另一个来找到一个。
将元素本身放入数组中:
var pictures = [$("#link").get(0), $("#italy1").get(0)];
现在可以使用元素引用来查找数组中的元素。使用$.inArray
方法,因为它也适用于没有Array.indexOf
方法的浏览器:
var listIndex = $.inArray(this, pictures);
当然,当您从数组中获得元素时,您需要将其包装在jQuery对象中,以便对其使用jQuery方法:
$(pictures[listIndex+1]).show("drop", {direction: "up"}, 1000);
可能是jQuery。
如果您想选择下一个$("#link")
,您可以始终使用 $(this).next("#link")
为了支持Guffa,像这样的东西。
$(document).ready(function(){
var pictures = [$("#link").get(0), $("#italy1").get(0)];
$(pictures[1]).hide();
$("#link").on('click', function(){
var listIndex = $.inArray(this, pictures);
$(pictures[listIndex+1]).show("drop", {direction: "up"}, 1000);
});
$("#italy1").on('click', function(){
$(this).hide("drop", {direction: "up"}, 1000);
});
});
相关文章:
- 如何将数字切成更小的数字以适合我的数组
- jQuery.hide()不适用于我的数组
- 为什么这个 fs.readFile 循环没有将其结果推送到我的数组
- 获取我的数组中的每个 ID 映像 src
- 我想重新排列我的数组和其他数组一样,这个数组是键和值
- 无法将所有位置值保存到我的数组中
- 为什么我的数组长度没有增加
- 如果他们不这样做,就从我的数组中删除东西't没有前缀
- 为什么我的jQuery.map不能在这里组合我的数组
- 是php json_encode&AJAX破坏了我的数组
- 我们可以发送数据到控制器,直到我的数组变空
- 为什么我的数组没有按照将对象推入数组的方式排序
- 将一个元素附加到我的数组中
- 我的数组中的每个元素都被最后一个元素推入覆盖
- 如何在桌面上打印我的数组并替换为排序数组
- 为什么我的数组无法使用 innerhtml
- 为什么我的数组在 Javascript 中分离出来
- 我的数组子类不调用超构造函数
- Javascript 正则表达式来匹配我的数组中的表情符号
- 为什么我的数组在我的 savetime 函数中未定义,但在其他函数中正常运行