Mwili wa jQuery - Funguo ya jQuery()

Mfano

Tafuta kila ujinga wa p ambao unaingia katika div, kisha usababu ujenzi wa mabomu:

$("div > p").css("border", "1px solid gray");

Mtaarifu

Uhusiano na Kivinyo

Funguo ya jQuery() inakubaliana na stringi inayotumika kwa kifafanuzi kwa kundi la ujinga:

Funguo ya jQuery() ina makivinyo tatu:

Inasababuwa 1

Kumwita stringi inayotumika kwa kifafanuzi kwa kundi la ujinga:

jQuery(chaguo, [kichwa cha kuchaguliwa])

Kivinyo kidogo

Inasababuwa 2

Kutengeneza ukingo wa DOM kwa upozi wa HTML wa asili:

jQuery(html,[ownerDocument])

Kivinyo kidogo

Inasababuwa 3

Binia function inayotumika baada ya kutumia DOM kwa sababu ya kuzuka:

jQuery( callback )

Kivinyo kidogo

jQuery( chaguo, [ kichwa cha kuchaguliwa ] )

该语法有以下几种用法:

Kivinyo 1: Usababuwa mazingira wa chaguo

Inafaa

jQuery(chaguo, [kichwa cha kuchaguliwa])

Kwa msingi, mtumiaji wa chaguo kutafuta kwenye DOM kuanzia mtokeo wa andiko. Kupendekeza, inaweza kumkinga $() kwa thamani ya kichwa cha kuchaguliwa.

Kamaanisha, kamaanisha tunaweza kutafuta kizingo kwenye callback, tunaweza kufafanua hili:

Mfano

$("div.foo").click(function() {
  $("span", this).addClass("bar");
});

由于我们已经将 span 选择器限定到 this 这个环境中,只有被点击元素中的 span 会得到附加的 class。

在内部,选择器环境是通过 .find() 方法实现的,因此 $("span", this) 等价于 $(this).find("span")。

jQuery 的核心功能都是通过这个函数实现的。jQuery中的一切都基于这个函数,或者说都是在以某种方式使用这个函数。这个函数最基本的用法就是向它传递一个表达式(通常由 CSS 选择器组成),然后根据这个表达式来查找所有匹配的元素。

默认情况下, 如果没有指定 context 参数,$() 将在当前的 HTML document 中查找 DOM 元素;如果指定了 context 参数,如一个 DOM 元素集或 jQuery 对象,那就会在这个 context 中查找。在 jQuery 1.3.2 以后,其返回的元素顺序等同于在 context 中出现的先后顺序。

Tukio 2: kutumia DOM elementi

Inafaa

jQuery(element)

Fungu hauzishukuka na kumwambia taarifa kwa sababu ya DOM elementi kwa kusaidia kumwambia jQuery object. Tukio hilo linatumika kwa kawaida, kumwambia matukio ya jQuery kwa sababu ya elementi ambayo inakutumika kwa kina this katika programu ya callback:

Mfano

$("div.foo").click(function() {
  $(this).slideUp();
});

Matokeo hii itatumika kusaidia uharibifu wa mazingira ya uharibifu kwa kusaidia uharibifu wa mazingira ya uharibifu. Kama programu hii inakubali kina this kama kiwango cha kina cha DOM, inafaa kufikia elementi kwa sababu ya jQuery object kabla ya kutumia matukio ya jQuery.

Fungu hauzishukuka na kumwambia wasoma hali ya uandikishaji wa XML na Window object (ingawa hauwa uwanja wa DOM) kama thamani za waadilifu.

Kama data ya XML itakaeza kutoka matokeo ya Ajax, tunaweza kutumia $() kufikia data kwa sababu ya jQuery object. Ikiwa imeshindwa, tunaweza kutumia .find() na matukio mengine ya kufikia DOM kwa kusaidia mabaki wa ustrathu wa XML.

Tukio 3: Kukopisha jQuery object

Inafaa

jQuery(jQuery object)

Kama ingia kusaidia $() kufikia taarifa kama thamani, itakuwa inatokana na fanuzi ya jQuery. Kama kina ya awali, jQuery mpya inakusaidia uwanja wa DOM zaidi.

用法 4 :返回空的集合

Inafaa

jQuery()

对于 jQuery 1.4,调用无参数的 jQuery() 方法会返回空的 jQuery 集合。在之前版本的 jQuery 中,这样会返回包含 document 节点的集合。

jQuery( html, [ ownerDocument ] )

该语法有以下几种用法:

用法 1 :创建新的元素

Inafaa

jQuery(html,[ownerDocument])

你可以传递一个手写的 HTML 字符串,或者由某些模板引擎或插件创建的字符串,也可以是通过 AJAX 加载过来的字符串。但是在你创建 input 元素的时会有限制,可以参考第二个示例。

当然这个字符串可以包含斜杠 (比如一个图像地址),还有反斜杠。当你创建单个元素时,请使用闭合标签或 XHTML 格式。例如,创建一个 span ,可以用 $("") 或 $("") ,但不推荐 $("")。在 jQuery 中,这个语法等同于 $(document.createElement("span"))。

如果以参数的形式将字符串传递给 $(),jQuery 会检查字符串是否是 HTML (比如,字符串某些位置存在标签)。如果不是,则把字符串解释为选择器表达式,请见上面的讲解。但如果字符串是 HTML 片段,则 jQuery 试图创建由该 HTML 片段描述的 DOM 元素。然后会创建并返回一个引用这些 DOM 元素的 jQuery 对象:

Mfano

$("

My new text

").appendTo("body");

如果 HTML 片段比不含属性的简单标签更复杂,如同上面例子中的 HTML,那么元素实际的创建过程是由浏览器的 innerHTML 机制完成的。具体地讲,jQuery 会创建新的

元素,然后为传入的 HTML 片段设置元素的 innerHTML 属性。当参数只是简单的标签,比如$("") 或 $(""),jQuery 会通过内生的 JavaScript createElement() 函数来创建元素。

要确保跨平台兼容性,片段的结构必须良好。能够包含其他元素的标签必须成对出现(带有关闭标签):

$("");

不过,jQuery 也允许类似 XML 的标签语法:

$("");

无法包含其他元素的标签可以关闭,也可以不关闭:

$("<img />");
$("<input>");

Tukio 2: Usababisha na Kuingia Hatua

Inafaa

jQuery(html,props)

Kwa jQuery 1.4, tunaweza kumpatia maelezo wa kifaa kwa paraimeteri ya pili. Paraimeteri hii inatakiwa kwa sababu ya kufikia kwa kipimo cha kifaa cha .attr() kwa sababu ya kina. Pia inaweza kumpatia kina ya kifaa, na inaweza kutumia mpangilio wa jQuery inayotumika: val, css, html, text, data, width, height, au offset.

Tazama, Internet Explorer haaruhusi kumaliza kipimo cha input na kubadilisha aina; lazima tumekuegemea kama "<input type="checkbox" />" kumaliza aina.

Mfano

Kuundika kipimo cha <input> na kumaliza hatua, kimaadili, na mafanikio.

$("<input>", {
  type: "text",
  val: "Test",
  focusin: function() {
    $(this).addClass("active");
  },
  focusout: function() {
    $(this).removeClass("active");
  }
}).appendTo("form");

jQuery( callback )

Inasababisha kusaidia kuingia kwa mafanikio kama ya DOM ikakamilika.

Muafanikio huu unavyofanana na $(document).ready() kwa sababu ya kumwambia kila kitu cha $() ambacho kimeharibika katika DOM kuwa kufanyika, lakini huzoftana kwa sababu ya kifaa cha kina. Inafikia kama kiwango cha kina, lakini huzoftana kwa sababu ya kifaa cha kina.

Mfano

Kisha DOM ikapewa na, kufanya mafanikio yake:

$(function(){
  // Dikito cha Kirefu
});