js获取li的id,请看清楚需求,只能给最外层的id="demo"
 <ul id="demo">
      <li id="1">1</li>
      <li id="2">2
        <ul>
            <li id="2_1">2_1</li>
            <li id="2_2">2_2</li>
        </ul>
      </li>
  </ul>

需求:鼠标点击某一个li 获取 id="demo"下指定li的id(只能给最外层ul的id)
请各位大牛获取到第二层的id之后再回复信息,不要得到了第一层的id就回复

 $("#demo li").each(function(){
alert(this.id);
});

这样写是获取不到id="2_1"的!!!!!

10个回答

$("li").click(function(event){
event.stopPropagation();
var s=this.id;
alert(s);

});
亲测可用望采纳

weixin_38894522
叫我小妖精 谢谢,有这个东西用,两个大页面就出来了,谢谢你,太谢谢了,哈哈哈哈哈哈哈哈哈
接近 2 年之前 回复

点击第一个li,获取到id="1",点击第二个li,获取到id="2",点击第三个li,获取到id="2_1",点击第四个li,获取到id="2_2",只给了最外层的ul的id="demo"

$("#demo").on("click","li",function(e){
e=e||window.event;
alert($(this)[0].id);
e.stopPropagation();
})

moguzhale
从不带闪现 回复叫我小妖精: 测试了啊,不测试我怎么敢发出来
接近 2 年之前 回复
caihuan19890113
caihuan19890113 回复叫我小妖精: 看你的意思是只想获取id是2_1的值,那就直接加条件判断就好
接近 2 年之前 回复
caihuan19890113
caihuan19890113 回复叫我小妖精: 是的 你上面的代码我测试没有问题,依次会输出所有li的id属性值,你看看你jquery加了吗?
接近 2 年之前 回复
weixin_38894522
叫我小妖精 你好,您测试了么?为什么我测试一点反应没有?
接近 2 年之前 回复

已经测试了上面的代码 是好的 所有li的id可以获取到!父级和子集都可以!

aaa1115260
行行醒醒 回复叫我小妖精: 人家的意思是,这个都能取到,别的也能取到,不需要判断id,this.id就是了!你每个li都可以点击,不知道是设置的li点击事件还是ul点击事件,如果是ul,js内置冒泡事件,你再写个li的click返回this.id就ok;如果是li的点击事件,那更简单,直接就是this.id啊,对么?
接近 2 年之前 回复
weixin_38894522
叫我小妖精 我用的是ztree插件,会有无数个li,你是想让我判断无数个id属性么?
接近 2 年之前 回复

加个class吧

  • 1
  • 2
    • 2_1
    • 2_2
                </li>
     </ul>
    

    $("body").on('tap','.demo',function(){
    var sf = this;
    $(sf).attr("id");
    alert($(sf).attr("id"));
    });

$("#demo").on('tap','li',function(){
var sf = this;
$(sf).attr("id");
alert($(sf).attr("id"));
});

$("#demo li").click(function(){
$i = 0;

            $ul=$(this).children('ul');
            if($ul){
                        for($j=0;$j<$ul.find('li').length;$j++){
                        $i += $ul.find('li').eq($j).attr('id');
                        }
            }
            alert($i)

})

$("li").click(function(event){
event.stopPropagation();
var s=this.id;
console.log(s);

});
可以用的可以达到你想要的效果 点击第一个li,获取到id="1",点击第二个li,获取到id="2",点击第三个li,获取到id="2_1",点击第四个li,获取到id="2_2",只给了最外层的ul的id="demo"

$("#demo li:eq(1)").(function(){
})

weixin_38894522
叫我小妖精 朋友,你是看不懂需求么?你觉得这样写对么?
接近 2 年之前 回复
 $("#demo li").each(function(){
        if(this.id=="2_1"){
alert(this.id);
        }
});
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!