jQuery将DOM元素分配给对象

时间:2012-07-25 21:43:05

标签: jquery object

在给定的场景中,如何将DOM对象分配给变量并调用它?在这个例子中,我试图获得“nav”元素的高度。现在它没有返回任何值,我认为这是因为在文档准备好之前调用了元素。

$(document).ready( function(){ 
    gbe.init();
});


var gbe = {

    navigation  : $("nav"),

    init    :   function() {
        gbe.nav.init();
    },

    nav     :   {

        init : function() {
            navHeight : gbe.navigation.height(); 
            console.log(gbe.nav.init.navHeight, gbe.navigation.height());
        }
    }

};

4 个答案:

答案 0 :(得分:1)

如果你这样做会怎么样:

$(document).ready( function(){ 
  gbe.navigation = $("nav");
  gbe.init();
});

答案 1 :(得分:0)

尝试将$(document).ready放在gbe的定义之下。只有console.log语句中的第二个条目才有效。

答案 2 :(得分:0)

​$(document).ready(function() {
    var $nav = $("nav");
    var height = $nav.height();
    console.log(height);
});​

您是否正在尝试揭示模块模式?上面的代码是快速而肮脏的方式。

FIDDLE:http://jsfiddle.net/jhZSG/

答案 3 :(得分:0)

恕我直言,你应该通过jQuery将元素传递给init函数,并将它传递给.ready(),如下所示:

$(document).ready( function(){ 
    gbe.init($("nav"));
});

var gbe = {    

    init    :   function(el) {
        gbe.navigation : el,
        gbe.nav.init();
    },

    nav     :   {

        init : function() {
            navHeight : gbe.navigation.height(); 
            console.log(gbe.nav.init.navHeight, gbe.navigation.height());
        }
    }

};