我的tr有id和两列(tds)我想通过这样做来改变第二个td html:
$("#value_"+ control_id+":nth-child(2)").html(type_id_name);
但它会擦除所有tds并将html插入到列中。
这是表结构
<tr id="value_486">
<td></td>
<td></td>
<tr>
我尝试了不同的方法
$("#tableID tr#value_"+ control_id+":nth-child(2)").html(type_id_name);
但它也无效。
答案 0 :(得分:4)
您需要在td
之前提供空格或:nth-child
。空格表示子或后代选择器:
$("#tableID tr#value_"+ control_id+" :nth-child(2)").html(type_id_name);
$("#tableID tr#value_"+ control_id+" td:nth-child(2)").html(type_id_name);
你当前没有空格的那个:
$("#tableID tr#value_"+ control_id+":nth-child(2)").html(type_id_name);
选择<tr>
的第二个实例,它不存在!
$(function () {
var control_id = 486;
var type_id_name = "Praveen";
$("#tableID tr#value_"+ control_id+" :nth-child(2)").html(type_id_name);
$("#tableID tr#value_"+ control_id+" td:nth-child(2)").html(type_id_name);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="tableID">
<tr id="value_486">
<td></td>
<td></td>
<tr>
</table>
&#13;
是的,当您使用#id
选择时,您不需要两个#id
选择器。你的第一个风格有效。