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()