我们如何使用js在循环表中获取隐藏值?

时间:2014-01-14 10:18:11

标签: javascript jquery

我有列表并将其循环到表中,我有这样的表:

<table class="table table-striped">
 <tr>
   <td>Hidenfield</td>
   <td>Dropdownlist</td>
 </tr>
//loop here and have result
  <tr>
    <td><input type='hiden' value='1' class='myclass'/></td>
    <td>
       <select id="cateActive" class="activeStatus" name="cateActive">
        <option selected="selected" value="1">Active</option>
        <option value="0">Deactive</option>
       </select>
     </td>
  </tr>
  <tr>
    <td><input type='hiden' value='2' class='myclass'/></td>
    <td>
       <select id="cateActive" class="activeStatus" name="cateActive">
        <option selected="selected" value="1">Active</option>
        <option value="0">Deactive</option>
       </select>
     </td>
  </tr>
  <tr>
    <td><input type='hiden' value='3' class='myclass'/></td>
    <td>
       <select id="cateActive" class="activeStatus" name="cateActive">
        <option selected="selected" value="1">Active</option>
        <option value="0">Deactive</option>
       </select>
     </td>
  </tr>
</table>

我有一个像这样的jquery函数:

$(document).ready(function(){       
    $(".activeStatus").change(function(){

         var categoryId = $('.myclass').val();
         alert(categoryId);

 });
});

当我点击任何下拉列表时,它显示值为1,如何在任何下拉框中操作以获取行中的隐藏值?

4 个答案:

答案 0 :(得分:1)

试试这段代码:

$(document).ready(function(){       
    $(".activeStatus").change(function(){
        var categoryId = $(this).parent().prev().find('.myclass').val();
        alert(categoryId);
    });
});

答案 1 :(得分:1)

您可以使用.closest().find()

的组合
var categoryId = $(this).closest('tr').find('.myclass').val();

Fiddle DEMO

答案 2 :(得分:1)

Here is working demo

在运行时添加行并选择特定的行元素时使用委托:

$(document).ready(function(){       
  $(".activeStatus").on('change',function(){    
      var categoryId = $(this).closest('tr').find('.myclass').val();
      alert(categoryId);    
  });
});

答案 3 :(得分:0)

因为$('.myclass')返回一个包含多个元素的数组,而.val()的普通调用总是返回第一个元素的值。所以你必须遍历数组 - categoryId是你的结果数组(或列表)。