jQuery: "$(variable_name)" 和 "variable_name" 的区别
jQuery: difference between "$(variable_name)" and "variable_name"
你能解释一下
之间有什么区别吗
var details_container = $(this).closest('.details');
$(details_container).find('.items').slideToggle();
和
var details_container = $(this).closest('.details');
details_container.find('.items').slideToggle();
我尝试使用 jQuery 1.11 和两个 运行 都正确。我认为第二个解决方案是最正确的,因为对象已经在变量中实例化,但尝试第一个时我注意到浏览器控制台没有 return 任何错误并且一切继续 运行 正确。
你能提供更多细节吗?也许 jQuery 足够聪明 "understand" 在这种情况下 $(details_container)
几乎等于 details_container
?
来自docs
When a jQuery object is passed to the $()
function, a clone of the object is created. This new jQuery object references the same DOM elements as the initial one.
除了其他的答案,我想说的是 $(someDOMElement)
i, idempotent:
$(someDOMElement) = $($($( ... $(someDOMElement) ... )))
无论您调用多少次。
这就是为什么在缓存 jquery 选择器变量前加上前缀 $
的原因:
var $details_container = $(this).closest('.details');
你能解释一下
之间有什么区别吗var details_container = $(this).closest('.details');
$(details_container).find('.items').slideToggle();
和
var details_container = $(this).closest('.details');
details_container.find('.items').slideToggle();
我尝试使用 jQuery 1.11 和两个 运行 都正确。我认为第二个解决方案是最正确的,因为对象已经在变量中实例化,但尝试第一个时我注意到浏览器控制台没有 return 任何错误并且一切继续 运行 正确。
你能提供更多细节吗?也许 jQuery 足够聪明 "understand" 在这种情况下 $(details_container)
几乎等于 details_container
?
来自docs
When a jQuery object is passed to the
$()
function, a clone of the object is created. This new jQuery object references the same DOM elements as the initial one.
除了其他的答案,我想说的是 $(someDOMElement)
i, idempotent:
$(someDOMElement) = $($($( ... $(someDOMElement) ... )))
无论您调用多少次。
这就是为什么在缓存 jquery 选择器变量前加上前缀 $
的原因:
var $details_container = $(this).closest('.details');