//绑定id值到tr
var tr="<tr>";
tr+="<td>";
tr+="<input type='checkbox' value='"+id+"' name='checkbox'/>";
tr+="</td>";
tr+="<td class='td_dep'>"+info_type+"</td>";
tr+="<td class='td_dep'>"+type+"</td>";
tr+="<td class='td_dep'>"+release1+"</td>";
tr+="<td class='td_dep'>"+effective_s+"到"+effective_o+"</td>";
tr+="<td class='td_dep'>"+compete+"</td>";
tr+="<td class='td_dep'>"+region+"</td>";
tr+="<td class='td_dep'>"+product+"</td>";
tr+="<td class='td_dep'>"+source+"</td>";
tr+="</tr>";
var $tr=$(tr);
$tr.data("id",id);
console.log($tr.data("id"));
//获取从tr中获取id值
$("#table_content").on("click",".td_dep",function(){
//获取绑定 的ID值
var $tr=$(this).parent();
var id=$tr.data("id");
console.log(id);
各位大神,为什么获取id值总是提示undifine,需要怎么解决呢
value='"+id+"' 你要不试试** id='"+id+"' **
$(":input[name='checkbox']").val()这样试试?我不懂你那样写是什么意思
没看出有什么问题,你怎么添加到table_content容器的?是不不是组件重新绘制过tr对象了
不行data改为attr试试,设置属性
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.7.1/jquery.min.js"></script>
<table id="tb"></table>
<script type="text/javascript">
$tr=$('<tr><td class="td_dep">11</td></tr>')
$tr.data('id', 123);
console.log($tr.data('id'));
$tr.appendTo('#tb');
$('#tb').on('click', '.td_dep', function () { alert($(this).parent().data('id')) })
</script>
看不出来你绑定数据的tr,是你最终数据展示的table中的tr,生成表格再循环绑定 $tr.data("id",id)吧。要选择一行,你已经找到了它的tr,再从tr中获取checkbox的值不行吗?
$('#tb').on('click', '.td_dep', function () {
var $tr=$(this).parent();
var id =$tr.find("input[type=checkbox]").val();
}试试吧
我有个疑惑,你用的拼字符串的方式定义的tr,但我没看到你在哪里加载tr,tr不加载怎么能获取元素