<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"的!!!!!
$("li").click(function(event){
event.stopPropagation();
var s=this.id;
alert(s);
});
亲测可用望采纳
$("#demo li:eq(1)").(function(){
})
点击第一个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();
})
已经测试了上面的代码 是好的 所有li的id可以获取到!父级和子集都可以!
$("#demo li").each(function(){
if(this.id=="2_1"){
alert(this.id);
}
});
加个class吧
</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"