Хорошо, у меня на сайте был код, который не изменился вообще.
Два дня назад я использовал эту функциональность, и она работала, но сегодня, когда я тестировал, она просто перестала работать.
По какой-то причине переход с селектора .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()
используется сотни раз по всему сайту.
Спасибо