1

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

4 回答 4

3

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

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

尝试这个

 $('[id="td_1"]').hide();
于 2013-08-27T11:02:35.580 回答
1

首先ID必须是uniqueTH您已经为和声明了相同的 IDTD

$("#your_td_id").hide();

如果您不止一个TD,则使用class而不是ID.

于 2013-08-27T11:03:11.297 回答
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 +

您可能想同时进行调查。

于 2013-08-27T11:18:04.537 回答
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();
于 2013-08-27T11:06:33.307 回答