我有列表并将其循环到表中,我有这样的表:
<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,如何在任何下拉框中操作以获取行中的隐藏值?
答案 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();
答案 2 :(得分:1)
在运行时添加行并选择特定的行元素时使用委托:
$(document).ready(function(){
$(".activeStatus").on('change',function(){
var categoryId = $(this).closest('tr').find('.myclass').val();
alert(categoryId);
});
});
答案 3 :(得分:0)
因为$('.myclass')
返回一个包含多个元素的数组,而.val()
的普通调用总是返回第一个元素的值。所以你必须遍历数组 - categoryId
是你的结果数组(或列表)。