我想实现点击表格中的title字段,可对其进行修改。通过鼠标失去焦点。可是现在拿不到数据的id,只能拿到文本,请问如何拿到id,我现在只能取到表格的第一条数据,分页是10条
<script>
$(function(){
    //找到所有的td节点
    var tds=$("td");
    //给所有的td添加点击事件 
    tds.click(function(){
        //获得当前点击的对象
        var td=$(this);
        //取出当前td的文本内容保存起来
        var oldText=td.text();                        
        //建立一个文本框,设置文本框的值为保存的值   
        var input=$("<input type='text' value='"+oldText+"'/>"); 
                td.html(input);
        //////////////////////////        
        
        
        
        //设置文本框的点击事件失效
        input.click(function(){
            return false;
        });
        //设置文本框的样式
        input.css("border-width","1");              
        input.css("font-size","16px");
        input.css("text-align","center");
        //设置文本框宽度等于td的宽度
        input.width(td.width());
        //当文本框得到焦点时触发全选事件  
        input.trigger("focus").trigger("select"); 
        //当文本框失去焦点时重新变为文本
        input.blur(function(){        
            var input_blur=$(this);
            //保存当前文本框的内容
            var newText=input_blur.val(); 
            td.html(newText); 
                        
           // alert($("#names").val());
           var tt = $("#names").val();
           // $.post('titles.do?id=$("#names").val()',{title:newText});
        //}); 
        $.post('titles.do',{title:newText,id:tt}); }); 
             
        //响应键盘事件
        input.keyup(function(event){
            // 获取键值
            var keyEvent=event || window.event;
            var key=keyEvent.keyCode;
            //获得当前对象
            var input_blur=$(this);
            switch(key)
            {
                case 13://按下回车键,保存当前文本框的内容
                    var newText=input_blur.val(); 
                    td.html(newText); 
                   // $.post('titles.do',{title:newText});
                break;
                
                case 27://按下esc键,取消修改,把文本框变成文本
                    td.html(oldText); 
                break;
            }
        });
    });
});
</script>
<table border="1" align="center">
<c:forEach><tr><td></td></tr>
</table>

解决方案 »

  1.   

    var tt = $("#names").val();
    这个好象就是你说的id那有没有id为names控件呢?
      

  2.   


    问题不清晰! var tt = $("#names").val();//注意一个页面不能重复出现相同的id,可以有相同的name或其他属性。建议用name
      // $.post('titles.do?id=$("#names").val()',{title:newText});
      //});  
      

  3.   

    是要实现这个功能:单击标题相应位置变为HTML input 控件,可以对标题进行修改,失去焦点触发保存事件,保存成功后该位置自动转换为修改后的内容,如失败,提示修改失败并转换为修改前的内容。我现在能把标题的内容穿过去,但是拿不到它的id.
    <c:forEach items="${topicfylist}" var="m">
    <span class="title" id="title" onclick="" aa="${m.id}">${m.title}</span>
    </c:forEach>