问题描述
- JQ 动态输出,如何捕获元素
-
<ul id="meslib"></ul> <script> for(i=0;i<5;i++){ strList += "<li data='"+arrData[i].id+"' id='list"+arrData[i].id+"'><p class='tkoff' id= 'pid"+i+"'>我是一个一段文字</p><div class='read' id='read'><img src='images/off.png' id= 'qid"+i+"' class='smlpic' alt='我是关闭按钮'></div></li>"; } $("#meslib").append(strList); $("#meslib li").live("click",function(){ //想要点击li 改变当前LI 里的P为显示,点击上方的按钮 整个LI 隐藏 }); </script>
动态输出5个 li 每个li里的P初始时是隐藏的,标题H2是显示的,点击其中一个LI的时候 当前被点击的LI的P 显示出来 点击关闭按钮 后LI 隐藏
因为是动态生成的所以不好控制,求方法,用的是JQ 1.83 不要使用其他脚本库
解决方案
<html>
<head>
<script src="http://lib.sinaapp.com/js/jquery/1.8.3/jquery.min.js"></script>
<style>
.tkoff{
display:none
}
</style>
</head>
<script>
</script>
<body>
<ul id="meslib"></ul>
<script>
var strList='';
var arrData = [{'id':'a'},{'id':'b'},{'id':'c'},{'id':'d'},{'id':'e'}];
for(i=0;i<5;i++){
strList += "<li data='"+arrData[i].id+"' id='list"+arrData[i].id+"'><p class='tkoff' id= 'pid"+i+"'>我是一个一段文字</p><div class='read' id='read'><img src='images/off.png' id= 'qid"+i+"' class='smlpic' alt='我是关闭按钮'></div></li>";
}
$("#meslib").append(strList);
$("#meslib li").live("click",function(){
//想要点击li 改变当前LI 里的P为显示,点击上方的按钮 整个LI 隐藏
$('.tkoff',this).toggleClass('tkoff');
});
$(".smlpic").live("click",function(){
$('p:first-child',$(this).parents('li')).addClass('tkoff');
return false;//阻止事件冒泡,防止li触发单击事件
})
</script>
</body>
</html>
解决方案二:
动态生成的也可以控制,关键是你产生li的时候最好指定一个id,这样用jquery比较好定位。
隐藏就$("#id").hide()显示就$("#id").show()
时间: 2024-10-30 11:58:00