Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取元素eq()索引_Javascript_Jquery_Html - Fatal编程技术网

Javascript 获取元素eq()索引

Javascript 获取元素eq()索引,javascript,jquery,html,Javascript,Jquery,Html,假设父元素中有未知数量的div元素。当我点击childdiv元素时,我想使用console.log()打印出它的eq()索引。 我不想使用任何类或ID HTML: CSS: 尝试将事件绑定到元素选择器,并通过在该对象上调用.index()打印结果 $('div').click( function(){ console.log($(this).index()); } ); $('div')。单击( 函数(){ $(“”).html($(this.index())

假设父元素中有未知数量的div元素。当我点击childdiv元素时,我想使用
console.log()
打印出它的
eq()
索引。 我不想使用任何类或ID

HTML:

CSS:


尝试将事件绑定到
元素选择器
,并通过在该对象上调用
.index()
打印结果

$('div').click(
    function(){
        console.log($(this).index());
    }
);
$('div')。单击(
函数(){
$(“”).html($(this.index()).appendTo(document.body);
}
);
div{
高度:10px;
宽度:10px;
背景颜色:蓝色;
保证金:2倍;
}

如果您想获取与文档中所有div相关的已单击div的索引,无论它们位于何处,您需要使用函数的变体:

如果对元素集合和DOM元素调用
.index()
或者传入jQuery对象,
.index()
返回一个整数 指示传递的元素相对于原始元素的位置 收藏

$(函数(){
$(“div”)。在(“单击”,函数()上{
var指数=$(“div”).指数(本);
/*
*$(this).index(“div”)产生相同的结果
*/
$(“#结果”).text(“单击div:eq(“+index+”)”);
});
});

0(1.1)
1.(1.2)
2.(1.3)
3.(2.1)
4.(2.2)
5.(2.3)
6.(3.1)
7.(3.2)
8.(3.3)

(单击div)

eq()
这里的问题是在什么上下文中出现的
index()
仅返回父元素中所有元素的
eq()
。包括脚本标记或任何其他元素类型

在您的示例中,您可能希望将匹配范围仅限于项及其同级div,然后使用该div集确定单击的项的索引:

$("div").on("click", function(){
    console.log( $(this).parent().children("div").index(this) );
});
这将避免在索引的集合中包含太多元素的常见问题

e、 g


从头到尾花时间通读是值得的。这实际上需要一个小时,最多两个小时,而且它几乎会立即回报你。
eq()
这里的问题是在什么样的背景下出现的。index()仅返回与直接父元素中的所有元素相关的
eq()
。你需要把问题弄清楚。我在这里编辑了问题和代码,使它更具体一点。我想打印出父级
div
的唯一子元素的
eq()
索引
eq()
在什么上下文中才是问题所在
index()
仅返回与直接父元素中所有元素相关的
eq()
。@TrueBlueAussie:的确,这是非常重要的一点。事实上,在我添加的实时示例中,如果您将
脚本
放在开头,它会对索引产生影响(如您所知,只是将其标记为OP)。
#parent div{
    height: 10px;
    width: 10px;
    background-color:blue;
    margin:2px;
}
$('div').click(
    function(){
        console.log($(this).index());
    }
);
$("div").on("click", function(){
    console.log( $(this).parent().children("div").index(this) );
});
<p>Some other sibling</p>
<div></div>
<div></div>
<div></div><!--if I click on this element eq() do you want 2 or 3? -->
<div></div>
<div></div>
$("div").on("click", function(){
    console.log( $(this).index() );
});