有没有办法更改没有id或名称的表的第一行的标题?

时间:2014-01-08 04:22:27

标签: jquery html

以下是一些示例代码:

<table>

 <tr>
  <td>Caption1</td>
  <td>Caption2</td>
 </tr>

 <tr>
  <td><input id="input1" type="text"></td>
  <td><input id="input2" type="text"></td>
 </tr>

</table>

鉴于上面的代码,第二行只有输入字段的id,如何将标题从“Caption2”更改为其他内容? 我怎么能隐藏整个第二列?

PS:只允许使用纯js或Jquery。

5 个答案:

答案 0 :(得分:2)

尝试使用:contains()之类的,

$(function(){
   $('td:contains(Caption2)').text('New Caption');
});

Demo

或者,您可以使用:first:eq()之类的,

$(function(){
    $('tr:first td:eq(1)').text('New Caption');
});

Demo 1

您可以使用#input1的方式,也可以

$(function(){
    $('#input1').closest('tr')// finds the row having #input1
                .prev('tr') // finding the previous row
                .find('td:eq(1)') // get the second column
                .text('New Caption'); // set the new caption
});

Demo 2

答案 1 :(得分:2)

您可以尝试select the first row然后the second column这样

$( "table tr:nth-child(1) td:nth-child(2)" ).html("new Caption");

答案 2 :(得分:2)

你也可以使用第一个tr,然后是第一个td

$('table tr:first td:first').text("you new caption");

答案 3 :(得分:2)

对于第一项任务(将标题从“Caption2”更改为其他内容),您可以使用以下内容:

   $(function(){
       $('#input2').click(function(){
          //get child index WRT parent tr
          var parent = $(this).parent()
          var index_row = $(parent).index(); 
          //assuming the structure of the html is not going to change
          $(parent).parent().prev().children().eq(index_row).html('Something Else');
       });
   });

请参阅http://jsfiddle.net/8Jvjv/

答案 4 :(得分:1)

遍历DOM

$("#input1")       /* start with the ID you want */
 .closest("table") /* traverse up to find the table tag */
 .find("tr")       /* find tr tags */
 .first()          /* just grab the first (header) row */
 .find("td")       /* grab all td tags */
 .last()           /* we want the last one here */
 .html("new caption"); /* update the HTML */

请参阅小提琴:http://jsfiddle.net/LMLdR/

所有人都在一起:

$("#input1").closest("table").find("tr").first().find("td").last().html("new caption");