使用JQuery:
有时,我能做到variable.val()并且有效.有时,我需要使用$(variable).val().
我希望能够在没有反复试验的情况下做出选择.
有没有人知道何时$()使用JQuery 包装对象?
kgi*_*kis 15
使用$()包装DOM对象会将其转换为jQuery Wrapped Set Element.这样你就可以用它来调用jQuery方法(val(),attr(),show(),hide(),serialize()).
但是,如果你需要获取或设置纯javascript属性,那么你不应该包装它.
简单地说,$(variable)需要一个DOM元素并创建一个jQuery对象.您需要在最终使用DOM对象而不是jQuery对象时使用它.
您获得DOM对象的最可能原因是:
this变量和所有事件参数都将引用DOM对象(而不是jQuery对象).document.getElementById(如果你有一些遗留的javascript或者因为某种原因引用了不是jQuery插件的第三方库)那么这些将是DOM对象,需要是包裹.但是,$(variable)如果variable已经是一个jQuery对象,那么调用对于可能通过如何使用它来假定它是一个DOM对象的人来说是无害的,并且你总是可以通过调用返回到DOM对象$(variable)[0].
有没有人知道何时
$()使用JQuery 包装对象?
要点:什么时候obj instanceof jQuery返回false.这通常是this和方法参数的情况(除非记录方法,以便参数必须是一个jQuery对象).
所以,如果你有一个this并且你想拥有jQuery函数,那么你需要包装它.例如
function() {
$this = $(this);
$this.val();
}
Run Code Online (Sandbox Code Playgroud)
此外,如果你有一个函数,其参数不一定是jQuery元素,并且你想确保它们是,那么你需要先包装它.例如
function(e) {
e = $(e);
e.val();
}
Run Code Online (Sandbox Code Playgroud)
重新包装jQuery元素没有坏处.