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

标签 javascript jquery html

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

我几乎做到了:

var opts = {
  ul: $(this).find('.carousel'),
  li: ul.find('li')
}

li 属性给出错误无法调用未定义的“find”方法

如何解决?

最佳答案

无论您的选择器是什么,您都无法在声明对象时访问其属性。

为什么要声明ul?您正在 opts 对象上创建属性 ul

丑陋:

您可能想要的是:

var opts = {
    ul: $(this).find('.carousel')    
}
opts.li = opts.ul.find('li');

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

清洁工:
var opts = {
    li: $(this).find('.carousel li')    
}

同样好。

最干净:

你还可以这样做:

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

太糟糕了,但这是你自找的:

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'));

还有

(请注意您的 this 是什么,大概页面上有多个 .carousel 元素,而这里您需要目标内的元素一个事件。)

关于javascript - 无法调用未定义的方法 'find',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18322063/

相关文章:

javascript - jQuery:反向字符串切片函数?

javascript - 通过 Ajax 发送带有额外参数的表单数据?

javascript - 跨浏览器离开站点前确认消息 (JS)

javascript - Google Apps 脚本事件 EventGuest 没有 .getEmail()

javascript - 过滤拒绝的 promise

javascript - 将数组变量传递给函数的下一部分

Jquery 主题 : editing text on a To-Do-List after adding text

javascript - 通过 Onclick 使用 appendChild/replaceChild 函数切换图像堆栈

javascript - Rails 无法将 AJAX 数据发送到 Controller

javascript - 在 Node.js 中通过相对路径显示图像