jQuery对象作为元素

jQuery objects as elements

本文关键字:元素 对象 jQuery      更新时间:2023-09-26

我在一些高级jQuery:中看到了这种语法

$container

如:

$input = $container.find('.fn_this_timeline')

编辑:基于下面的一些评论,只是为了澄清我所看到的"$container"的第一个实例是在一开始就创建的:

init: function($container){
var myThing = this,
$input = $container.find('.fn_do_some_calc'),
$submit = $container.find('.fn_do_some_other_calc'),
defaultValue = parseInt($input.val(), 10);
myThing.$container = $container;

上面这句话更让我困惑:/

我习惯于使用这样的jQuery选择器:$('#mySelector').method('etc');

有人能告诉我区别是什么,什么时候使用"速记"风格合适或适用吗?

这不是什么简写,这只是Javascript变量的使用。例如,$container变量可能是这样声明的:

var $container = $("#container");

因为它是存储的,所以元素(jQuery对象)是"缓存的",并且可以重用,而不需要jQuery退出并重新遍历DOM来再次找到它(因为每次使用$("select")时都必须这样做)。

在变量名的开头使用$有时有助于开发人员记住它包含一个jQuery对象,而不是Javascript元素(就像从document.getElementById("container");.返回的一样

根据问题的init方法的位置,行myThing.$container = $container;只是将对象的属性"$container"设置为$container变量的值。所以对象可能是这样的:

var myObject = {
    init: function () {
        // blah blah blah
    },
    $container: undefined
};

在运行init方法之后,它会将"$container"属性设置为某个值。

这只是为了表明,$container变量已经是一个包装的jQuery对象,而不是一个本地DOM节点。

例如,你可以写:

var container  = document.getElementById('item');
var $container = jQuery(container); // or:
var $container = jQuery('#item');

明白了吗?

基本上,是的,它是简写。

对于您注意到的功能:

init: function($container){
var myThing = this,
$input = $container.find('.fn_do_some_calc'),
$submit = $container.find('.fn_do_some_other_calc'),
defaultValue = parseInt($input.val(), 10);

$包含在内,因此您可以将jQuery对象传递到函数中。所以当你称之为时,你可以做这样的事情:

init($('#theid'));

到下面的行:

myThing.$container = $container;

这只是将jQuery对象存储为myThing对象的一部分。另一个注意事项是,你可以做一些类似$var = 1的事情,这将是完全有效的。然而,它通常是作为存储jQuery对象的提醒。

使用jQuery没有快捷方式。

在jQuery中声明变量是标准方法。

即$container=$("#container");

$container是一个jquery对象。

理解:$表示它是jquery对象,所以在适当的时候对它应用操作。