⊗jqBsEM 30 of 113 menu

Работа з метадам each у jQuery

Калі ў нас ёсць група элементаў, атрыманых з дапамогай jQuery, мы можам уносіць у іх змены толькі для ўсіх элементаў адначасова.

Напрыклад, калі мы хочам змяніць тэкст усіх знойдзеных абзацаў - у нас не атрымаецца зрабіць яго розным.

У гэтым выпадку нам дапаможа спецыяльны метад each, які дазваляе ўжыць якую-небудзь функцыю для ўсіх элементаў набору jQuery. Пры гэтым унутры гэтай функцыі мы зможам падзяліць элементы і паступіць па-рознаму з кожным з іх.

Па сутнасці each з'яўляецца цыклам, у дапамогай якога можна перабраць усе знойдзеныя элементы. Спасылка на той элемент, па якому зараз праходзіць цыкл будзе ляжаць у this.

Мы можам проста скарыстацца гэтым this на чыстым JavaScript, як мы гэта рабілі раней, напрыклад, так - this.innerHTML - і вывесці ўнутранае змесціва нашых элементаў. Але лепей абгарнуць this у долар jQuery такім чынам - $(this) - у гэтым выпадку мы зможам ужываць да яго ўсе метады і ланцужкі jQuery.

Давайце разгледзім наступны HTML код:

<p class="www">text</p> <p class="www">text</p> <p class="www">text</p> <p>text</p>

У даным прыкладзе мы павінны атрымаць усе элементы з класам www і вывесці на экран іх змесціва. Як гэта робіцца: з дапамогай $('.www') мы атрымліваем патрэбныя нам элементы, затым з дапамогай each(test) мы да кожнага атрыманага элемента ўжываем функцыю test. Яна спачатку ўжывецца да першага абзаца, потым да другога, да трэцяга і гэтак далей.

Унутры функцыі this будзе паказваць на той элемент, да якога ўжываецца функцыя test - спачатку гэта будзе першы элемент, потым другі, ну і гэтак далей. З дапамогай такой канструкцыі $(this) мы замест звычайнага this ад JavaScript атрымаем элемент jQuery і ўжываем да яго метад html, які атрымае тэкст нашага элемента. Ну, а далей ён проста вывядзецца на экран:

/* Імя функцыі test пішем без двукоссяў і (), так як нам патрэбен яе код, а не вынік: */ $('.www').each(test); function test() { alert($(this).html()); }

Для вырашэння дадзенай задачы можна ўжываць і ананімныя функцыі - так робяць часцей за ўсё:

$('.www').each(function() { alert($(this).html()); });

Таксама мы можам перадаць метаду each callback-функію з параметрамі.

Давайце ў наступным прыкладзе дадамо ў канец усім li на старонцы іх парадкавы нумар. Цяпер у нашу ананімную функцыю мы будзем перадаваць нумар элемента і сам элемент:

$('li').each(function (index, elem) { $(elem).append(index); });

А цяпер замест elem выкарастаем this:

$('li').each(function (index) { $(this).append(index); });

Змяніце змесціва ўсіх li на іх парадкавы нумар.

Беларуская
AfrikaansAzərbaycanБългарскиবাংলাČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць