Bootstrap-datetimepicker: end() 在使用 find() 时不是一个函数

Bootstrap-datetimepicker: end() is not a function when using find()

http://eonasdan.github.io/bootstrap-datetimepicker/

我在使用 find() 设置找到元素的日期时得到 Uncaught TypeError

Uncaught TypeError: $(...).find(...).data(...).end(...).find(...).data(...).date(...).end is not a function

$('.assignees-form .assignee:last')
    .find('.start input').data('DateTimePicker').date('04/17/2017 19:50 pm').end()
    .find('.due input').data('DateTimePicker').date('04/17/2017 20:15 pm').end()
    ......

不使用 end() 时工作正常。

$('.assignees-form .assignee:last').find('.start input').data('DateTimePicker').date('04/17/2017 19:50 pm');
$('.assignees-form .assignee:last').find('.due input').data('DateTimePicker').date('04/17/2017 20:15 pm');

我有超过 25 个元素要更新,我不想开始重复行。

有什么建议吗?

正如 Jacky Shek 在评论中所述,date() 是 datetimepicker 的函数,它不是 return 一个 jQuery 对象,因此它不可链接。

您可以缓存 jQuery 选择器,然后使用 find 而不是 end()

您的代码可能如下所示:

var $elem = $('.assignees-form .assignee:last');
$elem.find('.start input').data('DateTimePicker').date('04/17/2017 19:50 pm');
$elem.find('.due input').data('DateTimePicker').date('04/17/2017 20:15 pm');