使用Jquery隐藏表td

时间:2013-08-27 11:00:55

标签: javascript jquery

在下面的代码中,我如何隐藏表的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()

但它不起作用。还有其他解决方案吗?

4 个答案:

答案 0 :(得分:3)

首先,如果有多个td则不要使用相同的id,在这种情况下添加一些其他帖子或pre。并用作

 $('[id^="td_1"]').hide();//for post
 $('[id$="td_1"]').hide();//pre

试试这个

 $('[id="td_1"]').hide();

答案 1 :(得分:1)

首先ID必须是unique。您已为THTD

声明了相同的ID
$("#your_td_id").hide();

如果您有多个TD,请使用class代替ID

答案 2 :(得分:1)

正如其他人所提到的,你不能完全基于ID匹配多个元素;它们在整个文档中必须是唯一的。我怀疑你所看到的是“ID”标题从表格的顶部消失,但值仍然可以在表格中看到。

其他答案提到换班;还有另一种可用方法,使用nth-child伪选择器:

    $("table tr > *:nth-child(2)").hide();

这将隐藏tr下的第二个元素,因为*THTD相匹配。如果您从未希望它可见,那么更好的解决方案包括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();