jQuery-keskiosa - jQuery()-menetelmä

实例

Löydä kaikki div-elementin alle kuuluvat p-elementit ja aseta niiden reunaviivan ominaisuus:

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

Kokeile itse

Määritelmä ja käyttö

jQuery()-menetelmä hyväksyy merkkijonon, joka sisältää CSS-valitsimen elementtipakalle.

jQuery()-funktioilla on kolme syntaksia:

Syntaksi 1

Hyväksyy merkkijonon, joka sisältää CSS-valitsimen elementtipakalle:

jQuery(valitsin, [konteksti]

Yksityiskohtainen käyttö

Syntaksi 2

Luo DOM-elementti alkuperäisellä HTML-merkkijonolla:

jQuery(html,ownerDocument]

Yksityiskohtainen käyttö

Syntaksi 3

Liitä funktio, joka suoritetaan DOM-dokumentin lataamisen jälkeen:

jQuery( callback )

Yksityiskohtainen käyttö

jQuery( valitsin, [ konteksti ] )

Tämä syntaksi on käytettävissä seuraavilla tavoilla:

Käyttötapa 1: Määritä valitsijaympäristö

语法

jQuery(valitsin, [konteksti]

Oletusarvoisesti valitsin etsii DOM:aa dokumentin juuresta. Voimme kuitenkin asettaa $() valinnaiselle kontekstiparametrille.

Esimerkiksi, jos haluamme etsiä elementtiä callbackissa, voimme määrittää seuraavan hakun:

实例

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

Koska olemme rajoittaneet span-valitsimen this-ympäristöön, vain napsautetussa elementissä olevat span-elementit saavat lisätyn luokan.

Sisäisesti valitsija-ympäristö toteutetaan .find() -menetelmän avulla, joten $("span", this) on sama kuin $(this).find("span").

jQuery:n ydintoiminnot toteutetaan tämän funktion kautta. Kaikki jQuery:ssä tapahtuva on perustuu tähän funktioon tai käyttää jollain tavalla tätä funktiota. Tämä funktion peruskäyttö on lähettää sille ilmaisu (yleensä CSS-valitsimen muodossa), ja sitten etsiä kaikki vastaavat elementit kyseisen ilmaisun perusteella.

Oletusarvoisesti, jos kontekstiparametria ei määritetä, $() etsii DOM-elementtejä nykyisestä HTML-dokumentista; jos kontekstiparametri määritetään, kuten DOM-elementtisarja tai jQuery-objekti, etsintä tehdään kyseisessä kontekstissa. jQuery 1.3.2 jälkeen sen palauttama elementtijärjestys vastaa kontekstin elementtien ilmestymisjärjestystä.

Käyttötapa 2: DOM-elementin käyttö

语法

jQuery(element)

Tämä funktio mahdollistaa jQuery-objektin luomisen käyttämällä muilla tavoin löydettyjä DOM-elementtejä. Tämä toiminto käytetään yleensä siinä, että kutsutaan jQuery-metodeja elementtiin, joka on jo saanut this-kriitteryhmän callback-funktiosta:

实例

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

Tässä esimerkissä käytetään liukuvaa animaatiota piilottaakseen elementin, kun se on napsautettu. Koska käsittelevä ohjelma saa napsautetun kohteen this-kriitteryhmässä puhtaana DOM-elementtinä, täytyy käyttää jQuery-objektia elementin kääriäksesi ennen kuin sitä kutsutaan jQuery-metodeja.

Tämä funktio voi myös hyväksyä XML-dokumentin ja Window-objektin (vaikka ne eivät ole DOM-elementtejä)有效参数。

Kun XML-data palautetaan Ajax-kutsusta, voimme käyttää $() -funktiota pakataksimme tiedot jQuery-objektin avulla. Kun se on valmis, voimme käyttää .find() ja muita DOM-selailumetodeja hakeaksemme yksittäisiä elementtejä XML-rakenteesta.

Käyttötapa 3: jQuery-objektin kloonaus

语法

jQuery(jQuery-objekti)

Kun jQuery-objekti siirretään $() -funktiolle parametrina, luodaan sen kopio. Uusi jQuery-objekti viittaa samoihin DOM-elementteihin kuin alkuperäinen objekti.

Käyttötapa 4: Palauta tyhjä kokoelma

语法

jQuery()

jQuery 1.4 versiossa kutsu ilman parametreja jQuery() -metodilla palauttaa tyhjän jQuery-kokoelman. Aiemmissa jQuery-versioissa tämä palauttaa dokumenttikoon sisältävän kokoelman.

jQuery( html, [ ownerDocument ] )

Tämä syntaksi on käytettävissä seuraavilla tavoilla:

Käyttötapa 1: Luo uusi elementti

语法

jQuery(html,ownerDocument]

Voit lähettää käsinkirjoitetun HTML-merkkijonon, jossain mallinnusmoottorissa tai lisäosassa luodun merkkijonon tai AJAX:llä ladatun merkkijonon. Mutta kun luot input-elementin, sinulla on rajat, joita voit tarkistaa toisessa esimerkissä.

Tämä merkkijono voi sisältää vinovartion (esimerkiksi kuvan osoite) ja pystysuoran viivan. Kun luot yksittäistä elementtiä, käytä sulkeita tai XHTML-muotoa. Esimerkiksi span-luominen voidaan tehdä $("<span/>") tai $("<span></span>"), mutta ei suositella $("<span>")). jQuery:ssä tämä syntaksi on yhtä kuin $(document.createElement("span"))

Jos merkkijonoa siirretään parametrina $() -funktioon, jQuery tarkistaa, onko merkkijono HTML:ää (esimerkiksi, merkkijonossa on tageja tiettyyn sijaintiin). Jos ei ole, merkkijono tulkitaan valitsinilmauksena, kuten yllä kuvatun esimerkin mukaisesti. Jos merkkijono on HTML-kappale, jQuery yrittää luoda DOM-elementin, jota HTML-kappale kuvaa. Tämän jälkeen luodaan ja palautetaan jQuery-objekti, joka viittaa näihin DOM-elementteihin:

实例

$("<p id="test">My <em>new</em> text</p>").appendTo("body");

Jos HTML-kappale on monimutkaisempi kuin yksinkertainen ilman ominaisuuksia oleva merkki, kuten yllä olevassa esimerkissä, elementin todellinen luontiprosessi suoritetaan selaimen innerHTML-mekanismin avulla. Tarkemmin sanottuna jQuery luo uuden <div>-elementin ja asettaa elementin innerHTML-ominaisuuden saadulle HTML-kappaleelle. Kun parametrina annetaan vain yksinkertainen merkki, kuten $("<img/>") tai $("<a></a>"), jQuery luo elementin内生 JavaScript createElement()-funktioita käyttäen.

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

$("<a href="http://jquery.com"></a>");

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

$("<a/>");

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

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

用法 2 :设置属性和事件

语法

jQuery(html,props)

对于 jQuery 1.4,我们可以向第二个参数传递一个属性映射。该参数接受能够传递给 .attr() 方法的属性的超集。此外,可以传递任意的事件类型,并可以调用下面的 jQuery 方法:val, css, html, text, data, width, height, or offset。

注意,Internet Explorer 不允许你创建 input 元素并改变其类型;您必须使用例如 "<input type="checkbox" />" 来规定类型。

实例

创建一个 <input> 元素,同时设定 type 属性、属性值,以及一些事件。

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

jQuery( callback )

允许你绑定一个在 DOM 文档载入完成后执行的函数。

该函数的作用如同 $(document).ready() 一样,只不过用这个函数时,需要把页面中所有需要在 DOM 加载完成时执行的其他 $() 操作符都包装到其中来。尽管从技术上来说,这个函数是可链接的,但真正以这种方式链接的情况并不多。

例子

当DOM加载完成后,执行其中的函数:

$(function() {
  // 文档就绪
});