在下面的代码中,我如何隐藏表的id列。
var joblist = "";
joblist = joblist + "<table ><tr><th >Select</th><th id='td_1'>ID</th><th >Name</th><th >Names</th><th>OS</th><th >Server</th></tr>";
var tabString = '<tr ><td > ' + '<input type="radio" name="joblist" onclick="myfunc(this);" id= ' + value.jobid + 'value=' + value.jobid + '> </td><td id="td_1" >' + value._id + '</td><td >' + value.names + '</td><td a>' + value.os + '</td><td >' + value.server + '</td></tr>';
joblist = joblist + tabString;
我试过
$("#td_1").hide()
但它不起作用。还有其他解决方案吗?
答案 0 :(得分:3)
首先,如果有多个td则不要使用相同的id,在这种情况下添加一些其他帖子或pre。并用作
$('[id^="td_1"]').hide();//for post
$('[id$="td_1"]').hide();//pre
试试这个
$('[id="td_1"]').hide();
答案 1 :(得分:1)
首先ID
必须是unique
。您已为TH
和TD
$("#your_td_id").hide();
如果您有多个TD
,请使用class
代替ID
。
答案 2 :(得分:1)
正如其他人所提到的,你不能完全基于ID匹配多个元素;它们在整个文档中必须是唯一的。我怀疑你所看到的是“ID”标题从表格的顶部消失,但值仍然可以在表格中看到。
其他答案提到换班;还有另一种可用方法,使用nth-child
伪选择器:
$("table tr > *:nth-child(2)").hide();
这将隐藏tr
下的第二个元素,因为*
与TH
和TD
相匹配。如果您从未希望它可见,那么更好的解决方案包括CSS:
table tr > *:nth-child(2) { display: none; }
或简单地将其渲染为<input type='hidden' />
,并将其包含在您现有的一个单元格中(例如,与单选按钮一起)。
请注意,HTML中还有一些其他错误,包括:
<td a>' + value.os +
您可能希望同时进行调查。
答案 3 :(得分:0)
在隐藏元素之前,必须将其分配给DOM。如果要隐藏多个元素,则必须使用class
属性而不是id
var joblist = "";
joblist = joblist + "<table ><tr><th >Select</th><th class='td_1'>ID</th>" +
"<th >Name</th><th >Names</th><th>OS</th><th >Server</th></tr>";
var tabString = '<tr ><td > ' + '<input type="radio" name="joblist"
onclick="myfunc(this);" id= ' + value.jobid + 'value=' +
value.jobid + '> </td><td class="td_1" >' + value._id +
'</td><td >'+ value.names + '</td><td a>' + value.os +
'</td><td >' + value.server + '</td></tr>';
joblist = joblist + tabString;
$('#myElement').append(joblist);
$('.td_1').hide();