在对象属性上使用jQuery方法

时间:2016-02-11 01:45:13

标签: javascript jquery object

我试图在我的js对象的属性上使用jQuery函数,但它给了我一个错误"Uncaught TypeError: Cannot read property 'jquery' of undefined"。以下是一些示例代码:

var foo = {
    bar: $('#element'),
    baz: this.bar.find('#childelement'), // <- jQuery .find() not working
    hideBaz: function() {
        this.baz.hide();
    }
}

不确定该怎么做,任何帮助都会很棒

3 个答案:

答案 0 :(得分:2)

为了启用jquery功能,您必须使用$(this)而不是this。不使用$(this),您将无法在该对象上使用任何jquery。

答案 1 :(得分:2)

你应该在jquery中包装this

var foo = {
    bar: $('#element'),
    baz: $(this).bar.find('#childelement'), 
    hideBaz: function() {
        this.baz.hide();
    }
}

答案 2 :(得分:1)

要使用jQuery,您需要使用jQuery提供的命名空间。即 - 使用jQuery提供的jQuery或$。您还可以使用jQuery.noConflict()创建自己的命名空间。

如果您使用它们,那么只有jQuery才会知道您正在尝试使用其对象访问其方法。像$(this)或$(&#34; yourselector&#34;)。

所以使用上面的内容,你可以使用

var foo = {
    bar: $('#selector'),
    baz: $(this).bar.find('#childSelector'), 
    hideBaz: function() {
        this.baz.hide();
    }
 }

希望这会有所帮助。

快乐学习:)