如何在表中按类设置隐藏的输入值

时间:2014-03-02 22:33:03

标签: javascript jquery

我有这个表结构。

<table id="my_table">
 <tr class="odd" id="row_1">
  <td></td>
  <td><input type="hidden" id="flight_1" value=""></td>
 </tr>
 <tr class="odd" id="row_2">
  <td></td>
  <td><input type="hidden" id="flight_2" value=""></td>
 </tr>
 <tr class="odd" id="row_3">
  <td></td>
  <td><input type="hidden" id="flight_3" value=""></td>
 </tr>
 <tr class="even" id="row_4">
  <td></td>
  <td><input type="hidden" id="flight_4" value=""></td>
 </tr>
 <tr class="even" id="row_5">
 <td></td>
  <td><input type="hidden" id="flight_5" value=""></td>
 </tr>
 <tr class="even" id="row_6">
  <td></td>
  <td><input type="hidden" id="flight_6" value=""></td>
 </tr>

如何根据tr标签的类设置每行隐藏值的值。例如,我在表中有9行,其中3行为'odd',后3行为'even',后3行为'odd'。这可以是动态的,因为我可以在表格中来回交替排列5行,创建7行,类为“偶数”,7行为“奇数”类,然后返回“偶数”等。我需要做什么将每个类的隐藏值设置为第一个'奇数'类的“1”然后为下一个“偶数”类等的“2”。我试图使用jquery无效。我的jquery技能非常有限。这可能是使用jquery还是有其他解决方案?

1 个答案:

答案 0 :(得分:0)

检查当前类是否等于前一个类,并增加一个计数器

var i = 0;

$('#my_table tr').each(function() {
    if ( this.className != ($(this).prev().length ? $(this).prev().get(0).className : '')) i++;
    $(this).find('input').val(i);
});

FIDDLE