/ / Затваряне на объркване [затворено] - jquery, chaining

Верига на объркване [затворено] - jquery, chaining

Кажете, че имам този HTML:

<div id="div_box">
<ul>
<li class="li1"></li>
<li class="li2"></li>
<li class="li3"></li>
</ul>
</div>

И аз искам да премахна клас "li1".

Опитах това с jQuery:

$("#div_box").find(".li1").removeClass("li1");

Той работи, но това, което не разбирам е защо работи. #div_box няма клас, наречен "li1", така че това не трябва да работи.

Не мога ли да разбирам как работи веригата? Може ли някой да изясни защо работи?

Отговори:

0 за отговор № 1

Най- .намирам() метод връща всички потомци на #div_box което е в класа li1...

не всички jQuery методи връщат един и същ набор от обекти, на които е бил призован ... предимно на траверса на дървото Методи връща различен набор от обекти


0 за отговор № 2

Свързването ще сочи към object кое е evaluated наскоро, в твоя случай наскоро оценени object е излязъл .find(".li1"), Ако искате да добавите това #div_box след това трябва да използвате .addBack() в настоящия си контекст.


0 за отговор № 3

това е добре обяснено в документацията ... http://api.jquery.com/find/

на .find() метод ни позволява да търсим през потомците на тези елементи в дървото DOM и изграждане на нов обект jQuery от съвпадащите елементи.

Първият подпис за.Методът find () приема селектор израз от същия тип, който можем да преминем към функцията $ (). Най- елементите ще бъдат филтрирани чрез тестване дали съответстват на този селектор.

с грижата за преминаване към елементите

За разлика от останалите методи за пресичане на дърво,селектора израз се изисква при повикване към .find (). Ако трябва да се върнем всички елементи на потомството, можем да преминем в универсалния селектор "*", за да постигнем това.