无法调用未定义的方法'find'

Jas*_*per 0 html javascript jquery

我正在尝试使用我的jQuery代码中的对象.

我几乎是这样的:

var opts = {
  ul: $(this).find('.carousel'),
  li: ul.find('li')
}
Run Code Online (Sandbox Code Playgroud)

li 属性给出错误 Cannot call method 'find' of undefined

怎么修好?

phe*_*nal 11

选择器是什么并不重要,当你声明它时,你无法访问你声明的对象的属性.

为什么会ul被宣布?你正在对象ul上制作一个属性opts.

丑陋:

你可能想要的是:

var opts = {
    ul: $(this).find('.carousel')    
}
opts.li = opts.ul.find('li');
Run Code Online (Sandbox Code Playgroud)

但是如果你实际上不需要引用这两个组,那么:

清洁器:

var opts = {
    li: $(this).find('.carousel li')    
}
Run Code Online (Sandbox Code Playgroud)

同样好.

清洁:

你也可以这样做:

var $carousel = $(this).find('.carousel');
var options = {
    carousel: $carousel,
    carouselItems: $carousel.find('li')
}
Run Code Online (Sandbox Code Playgroud)

神圣,但你要求它:

var CarouselOptions = (function () {
    var options = function (carousel) {
        this.carousel = $(carousel);
        this.carouselItems = this.carousel.find('li');
    };

    options.prototype.myOptionsFunction = function () {
        // Don't know what you want your object to do, but you wanted a prototype...
    };

    return options;
})();
var opts = new CarouselOptions($(this).find('.carousel'));
Run Code Online (Sandbox Code Playgroud)

(小心你的this是什么,大概你.carousel在页面上有多个元素,在这里你想要一个在事件目标范围内的元素.)