嘿伙计我有以下jQuery:
var $this = $(this);
$this.closest('ul').find('li').removeClass('selected');
我正在尝试通过设置变量对具有相似ID的元素执行相同的操作:
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');
我并不感到惊讶,第二个没有用,但我无法弄清楚如何使第一个工作。有什么建议吗?
答案 0 :(得分:1)
由于您有身份证,请直接使用
$("#" + liID).closest('ul').find('li').removeClass('selected');
document.getElementById(liID)
将返回一个DOM元素。要使用jQuery方法,您必须将其转换为jQuery对象。你可以尝试
$(document.getElementById(liID)).closest('ul').find('li').removeClass('selected');
答案 1 :(得分:1)
document.getElementById(liID)
返回一个没有jQuery相关方法的dom元素引用,因此你需要让该元素的jQuery对象使用jQuery方法。
您可以使用id-selector获取目标元素,然后使用closest()
$('#'+liID).closest('ul').find('li').removeClass('selected');
答案 2 :(得分:1)
document.getElementByID()
返回一个DOM元素。
要使用closet,你需要一个jquery对象,所以用{包装document.getElementByID()
来使它成为一个jquery对象。
它会起作用