1行代码(console.log),代码中的两个安置=两个结果不同

时间:2015-02-20 02:44:21

标签: javascript jquery

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

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

在我使用键盘箭头的导航功能中,此行会返回此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内容时,选择器才会返回html内容。

1 个答案:

答案 0 :(得分:0)

我认为你确实得到了一个对象。这只是浏览器显示事物的方式。

试试这个:

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