1行代码(console.log),代码中的两个位置=两个结果差异

1 line of code (console.log), two emplacement in the code = two results differents

本文关键字:代码 两个 位置 结果 console log 1行      更新时间:2024-02-12

我遇到的问题是jQuery Selector为同一行代码返回了两个不同的答案:

console.log($('.page_container')[3]);

在我使用keybord箭头的导航功能中,这一行将向我返回此div的内容,包括父级".page_container"。这正是我不想要的,因为我需要它作为一个对象。

function checkKey(e) {
    var actualScroll = $('.main').scrollTop();
    var scrollTo = $('.page_container').height();
    console.log($('.page_container')[3]);
    if (e.keyCode == '38' && working == false) {
        working = true;
        // up arrow
        $(".main").animate({
            scrollTop: actualScroll - scrollTo,
        }, 1000, 'easeInOutExpo', function () {
            working = false;
        });
    } else if (e.keyCode == '40' && working == false) {
        working = true;
        // down arrow
        $(".main").animate({
            scrollTop: actualScroll + scrollTo,
        }, 1000, 'easeInOutExpo', function () {
            working = false;
        });
    }
}
$(document).ready(function () {
    //ArrowsNavigations
    document.onkeydown = testArrows;
});

但在代码的其他任何地方,它都会返回正常的东西,即具有所有原始属性的对象版本。

编辑:

这是fiddle,但我不明白为什么我没有相同的结果,不管怎样,每当我选择我的整个数组".page_container"时,我都会得到对象示例,但如果我选择这个数组的特定索引,我会得到这个事件的html。在我的本地版本中,选择器只有在checkKey函数中调用时才返回html内容。

我想你确实得到了一个对象。这只是浏览器显示内容的方式。

试试这个:

console.log($('.page_container')[3].id);