Привет, ребята, у меня есть следующий jQuery:
var $this = $(this);
$this.closest('ul').find('li').removeClass('selected');
и я пытаюсь сделать то же самое с элементом с похожим идентификатором, установив переменную:
var liID = $this.closest('li').attr('id');
var liID = liID.substring(0, liID.length - 1);
и затем пытается вызвать .closest('ul').find('li').removeClass('selected');
в теме. Я пробовал это:
document.getElementById(liID).closest('ul').find('li').removeClass('selected');
и это:
liID.closest('ul').find('li').removeClass('selected');
Я не удивлен, что второй не работает, но я не могу понять, как сделать первую работу. Какие-либо предложения?
Поскольку у вас есть идентификатор, прямо используйте
$("#" + liID).closest('ul').find('li').removeClass('selected');
document.getElementById(liID)
вернет элемент DOM. Чтобы использовать метод jQuery, вы должны преобразовать его в объект jQuery. Вы можете попробовать
$(document.getElementById(liID)).closest('ul').find('li').removeClass('selected');
document.getElementById(liID)
возвращает ссылку на элемент dom, которая не имеет связанных с jQuery методов, поэтому вам нужно получить объект jQuery для этого элемента для использования методов jQuery.
Вы можете использовать id-селектор для получения целевого элемента, а затем использовать closest()
$('#'+liID).closest('ul').find('li').removeClass('selected');
document.getElementByID()
возвращает элемент DOM.
Чтобы использовать шкаф, вам нужен объект jquery, поэтому wrap document.getElementByID()
с $, чтобы сделать его объектом jquery.
Это будет работать