Javascript 获取数组中元素位置的问题

Javascript 获取数组中元素位置的问题,javascript,jquery,Javascript,Jquery,使用正确的小提琴链接进行更新 我举了以下例子: 每次单击数组的某个元素时,它都会将其在数组中的位置以及下一个元素的位置记录到控制台。我想做的是,当我点击最后一个元素时,我想让它确定下一个元素实际上是第一个(循环数组) 但当我单击最后一个元素时,它并没有将arrayPos变量(数组中的位置数:articles)设置为零(数组中的第一个位置,它只是继续设置为数字6,尽管我在if参数中说过,如果它大于数组的长度,它应该变为零 为什么会这样? 有什么建议吗 HTML 索引0 指标1 指标2 指标3 指标

使用正确的小提琴链接进行更新

我举了以下例子:

每次单击数组的某个元素时,它都会将其在数组中的位置以及下一个元素的位置记录到控制台。我想做的是,当我点击最后一个元素时,我想让它确定下一个元素实际上是第一个(循环数组)

但当我单击最后一个元素时,它并没有将arrayPos变量(数组中的位置数:articles)设置为零(数组中的第一个位置,它只是继续设置为数字6,尽管我在if参数中说过,如果它大于数组的长度,它应该变为零

为什么会这样? 有什么建议吗

HTML

索引0
指标1
指标2
指标3
指标4
指标5
JQUERY

var articles = [];
$('.item').each(function(){
    var obj = $(this);
    articles.push(obj);
});

for (var i = 0; i < articles.length; i++) {
    $(articles[i]).data("index", i)
}

$('.item').on("click", function() {
    var id = $(this).data("index");
    console.log('NOW: '+id);
    if(id < articles.length){
        id++
    } else {
        id = 0;
    }
    console.log('NEXT: '+id);
});
var-articles=[];
$('.item')。每个(函数(){
var obj=$(本);
物品推送(obj);
});
对于(var i=0;i

如何实现这一点?

您只需使用jQuery
索引()

这将从0开始提醒索引。

这要求项目位于一个单独的div中,索引是相对于父项的索引。

我认为这是一个1-off问题……试试看

if (id < articles.length - 1)
if(id

$(function(){

    var articles = [];

    $('article').each(function(){
        articles.push( this );
    });

    $(articles).click(function(){
        console.log( $(this).index() );
    });

});

请注意,通过这种方式,您只需收集可索引的
文章
(每个子元素都将始终是索引0)。您可以
将JS
元素推送到一个元素集合中,然后单击,通过将JS元素包装到jQuery对象元素集合
$(文章)中来引用其原始索引值

您的小提琴与问题中的代码不匹配。您的代码过于复杂。
$(“.item”)
已经是一个项目数组。为什么要使用
。each()
查看是否要创建另一个数组?-1在您的问题上发布一个与您实际想要的问题不同的JSFIDLE。我根据JSFIDLE进行回答,因为我假设您实际上正在处理这个问题。@jfriend00您没有注意到JSFIDLE是一个错误,因为您不理解(或阅读)这个问题,否则你会发现它毫无意义。顺便说一句,我如何简化你所说的数组复杂性?在你的问题中犯了错误后,你侮辱了我,然后请求我的帮助。对不起,不是这样的。@jfriend00侮辱?在哪里?我只是说,在我犯了错误后,你在回答之前没有注意到这实际上是一个错误ng.无论如何,你的评论非常有用,我已经研究了你所说的,并且意识到这肯定可以简化,谢谢你,顺便说一句;)谢谢,你可能是少数几个注意到我所指的代码是显示的代码而不是错误的代码的帮助者之一,尽管我已经用正确的小提琴更新了问题,这解决了我的问题;)
if (id < articles.length - 1)
$(function(){

    var articles = [];

    $('article').each(function(){
        articles.push( this );
    });

    $(articles).click(function(){
        console.log( $(this).index() );
    });

});