Функция jquery children перестала работать на ровном месте - возможна амортизация - PullRequest
0 голосов
/ 11 января 2019

Хорошо, у меня на сайте был код, который не изменился вообще. Два дня назад я использовал эту функциональность, и она работала, но сегодня, когда я тестировал, она просто перестала работать.

По какой-то причине переход с селектора .children() на .find() исправил это, чего я действительно не ожидал.

Вот код:

var ele = $("div").find("[data-productid='" + response.productId + "']").children(".wishlist-button");
if (response.addedToWishlist) {
    $(ele).children(".button-2.active").removeClass("active");
    $(ele).children(".remove-from-wishlist-button").addClass("active");
}

Я знаю, что .children() выбирает только непосредственный ребенок, поэтому вот HTML, который иллюстрирует это:

<div class="wishlist-button">
            <input type="button" value="Remove from wishlist" title="Remove from wishlist" class="button-2 remove-from-wishlist-button remove-from-wishlist-button-6475">
            <input type="button" value="Add to wishlist" title="Add to wishlist" class="button-2 add-to-wishlist-button add-to-wishlist-button-6475 active">
    </div>

Когда я изменил код на это с помощью .find(), это сработало:

var ele = $("div").find("[data-productid='" + response.productId + "']").find(".wishlist-button");
if (response.addedToWishlist) {
    $(ele).find(".button-2.active").removeClass("active");
    $(ele).find(".remove-from-wishlist-button").addClass("active");
}

Как я и сказал, код не изменился, поэтому странно, что он просто перестал работать. Я использую JQuery версии 1.10.2 Мне интересно, если функция .children() обесценилась, или, возможно, что-то еще происходит.

Кто-нибудь знает, что здесь происходит? Я обеспокоен тем, что функция .children() используется сотни раз по всему сайту. Спасибо

...