- 调用jQuery选择的方法位于
$.fn
命名空间中,并自动接收并返回选择this
。$
命名空间中的方法通常是实用程序类型的方法,不适用于选择;他们不会自动通过任何 参数,它们的返回值会有所不同。
我不确定"选择"而$fn
在这里意味着什么。是"选择"是指使用Sizzle选择的DOM元素? $fn
是一个对象(因为JavaScript / ECMAScript没有对命名空间的内置支持),这个对象的方法类似于$.fn.add()
吗?
我搜索了" jQuery选择"在网上,但没有得到任何看起来很有希望的东西。谁能指出我正确的方向?非常感谢例子(和解释)。
答案 0 :(得分:2)
jQuery选择只是对jQuery方法本身(或$ alias)的调用。这就像$("#myDiv")
。在这种情况下,$("#myDiv")
是一个选择。此方法的结果是一个jQuery对象,其中包含匹配您选择的所有DOM元素。您传递给$的字符串是选择器。 jQuery支持CSS选择器(例如:#myDiv,.myDiv或div),XPath选择器(例如$('/ html /.// div [@ id =“text”]')))等。看看Selectors。
$.fn
是可供选择的函数的“容器”。假设您有一个名为autocomplete
的插件。如果您在autocomplete
中定义$.fn
,则autocomplete
会自动在任何选择中使用。这意味着您可以致电$("#myDiv").autocomplete()
。在autocomplete
实现中,您可以访问匹配的DOM元素并将插件应用于它们。您可以看到如何实现一个简单的插件here。
答案 1 :(得分:0)
jQuery选择器实际上是CSS选择器。因此,例如,$('#some_HTML_element_id')
将此元素作为jQuery对象返回。
什么是jQuery对象? - 类似HTML的对象,它具有正常的Javascript属性,与 - document.getElementBy*()
相同,但具有与jQuery相关的更多功能。例如:
jQuery('any selector').next() // selecting the next sibling element.
// there is no .next() function.
document.getElementBy*('any selector').next
这是选择。您只需选择一个元素,jQuery就可以添加更多功能。它返回this
元素,因此您可以使用链接。例如:
$('.tab').eq(0).next().select()
$('.tab')
- >返回jQuery对象集,因为您选择了.tab
css类,在大多数情况下,您将拥有多个选项卡。
jQuerySetOfElements.eq(0)
- >从集合中返回第一个元素。 (在这种情况下,第一个选项卡为jQuery对象)。
jQueryFirstTab.next()
- >选择下一个兄弟元素作为jQuery对象。
...
这意味着实用程序类型的函数,它不基于选择器。例如,我们有$.each()
。我们知道Javascript没有foreach循环。所以jQuery为我们提供了这个功能。请参阅语法:
$('selection')
- >返回jQuery元素。
$.UtilityFunction()
- >为我们做一些工作。
这意味着带有选择器的所选元素具有$.fn
命名空间中的函数,例如:在$.fn
命名空间中,我们拥有帮助我们处理以下元素的所有函数: .hide()
,.show()
,.toggle()
。当我们选择带有选择的元素时,我们可以在所选元素上使用此函数,例如:$('#myDiv').hide()
。
$。fn是jQuery.protopype。请参阅:jQuery fn namespace