Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery获取最近li的id_Javascript_Jquery - Fatal编程技术网

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');