jQuery显示错误的p索引

时间:2015-10-16 10:27:50

标签: jquery

所以我在这里做了一个小例子:

http://jsfiddle.net/u4yz7b7L/

这表明p元素有2个索引,而不是0(然后悬停在第一个p元素上)。为什么会这样?

$('body').on('hover', '.trn p', function() {
var ind = $(this).index();
var ps = $('.trn:visible p:eq(' + ind + ')').html();
console.log(ps);
console.log(ind);
});

2 个答案:

答案 0 :(得分:2)

您的结构如下所示:

<div class="trn">
    <img />
    <h1></h1> 
    <p></p>
    <p></p>
</div>

所以第一个<p>是父级内的第三个项目。索引从0开始,因此第三项具有索引2.

为什么不使用$(this)

,而不是使用索引
$('body').on('hover', '.trn p', function() {
   var ind = $(this).index();
   var ps = $(this).html();
   console.log(ps);
   console.log(ind);
});

答案 1 :(得分:0)

您可以使用最后相同的$(this)$(event.target)

$('body').on('hover', '.trn p', function(event) {
    var ps1 = $(this).html(),
        ps2 = $(event.target).html();
    console.log(ps1);
    console.log(ps2);
});