Javascript jQuery获取最近li的id
这将返回“文本” 利用Javascript jQuery获取最近li的id,javascript,jquery,Javascript,Jquery,这将返回“文本” 利用 $("#sortable").click("#editor_click_icon_edit",function(e) { console.log($(this).text()); }); 我只返回第一个条目的id。所以看起来“this”指向了这里有两个问题。首先,您没有正确使用click()。案例中的第一个参数是您希望包含在事件中的附加数据,但这与您的用例无关。相反,您似乎正在尝试创建一个委托事件处理程序,但您需要使用on() 其次,您需要遍历DOM,从单击的元素中
$("#sortable").click("#editor_click_icon_edit",function(e) {
console.log($(this).text());
});
我只返回第一个
条目的id。所以看起来“this”指向了
这里有两个问题。首先,您没有正确使用click()
。案例中的第一个参数是您希望包含在事件中的附加数据,但这与您的用例无关。相反,您似乎正在尝试创建一个委托事件处理程序,但您需要使用on()
其次,您需要遍历DOM,从单击的元素中找到父元素li
<代码>最近()
将为您实现这一点
$(“#可排序”)。在('click'、“#editor_click_icon_edit')上,函数(e){
console.log($(this.closest('li').prop('id'));
});代码>
-
文本
仅供参考,如果您使用一个代码片段,我们就可以更轻松地运行并查看结果。
在下面的代码片段中,我将其从添加侦听器切换到ul。现在,它将侦听器添加到ul中嵌套的lis中
/#sortable是ul的id
//.编辑可排序移动抓取李
$(文档).ready(函数(){
$(“#可排序>li”)。在(“单击”上,函数(e){
console.log($(this.attr('id'));
});
});代码>
.editor可排序可移动{
背景颜色:黄色;
}
.editor可排序可移动:悬停{
背景色:红色;
光标:指针;
}
-
文本
-
下一个
您想要$(“#可排序”)。在(“单击”,“编辑器”#单击图标(编辑)上,函数(e){…}
而不是。单击()
。因此,在标题中,您要说“最近的li”,所以请使用最近的方法!也希望您认识到ID是单数的。似乎编辑按钮会重复,因此您将无法使用id。标题说明“最近的li”单击侦听器是问题所在。让它与下面的代码一起工作$(“#可排序”).on('click',“#editor_click_icon_edit”),函数(e){console.log($(this.parent().parent().parent().prop('id'))});谢谢很高兴这有帮助。我强烈建议您使用closest()
而不是链接多个parent()
调用。首先,如果DOM发生轻微变化,前者将起作用。后者不会,坦白说,这很难看。为什么要投反对票?请提供上下文,以便修改答案。
$("#sortable").click("#editor_click_icon_edit",function(e) {
console.log($(this).text());
});
$(this).children().attr('id');