我无法从中获取另一个字段的索引 jquery .each()函数。我想要获取的值 输入名称为line_id []:
$('input[name=bl_caps[]]').each(function(index){
var line_id = $('input[name=line_id[]]').val();
var caps = $(this).val();
alert('line id: ' + line_id + '<br/>' + 'caps: ' + caps);
});
HTML:
<?php foreach(){ ?>
<input type="hidden" name="line_id[]" id="line_id" value="<?php echo $sbl->BusLineID; ?>"/>
<td><input type="text" name="bl_caps[]" id="bl_caps"/></td>
<?php } ?>
我打算这样做:
var line_id = new Array();
$('input[name=line_id[]]').each(function(index){
line_id[index] = $(this).val();
});
$('input[name=bl_caps[]]').each(function(index){
var line_ids = line_id[index];
var caps = $(this).val();
alert('line id: ' + line_ids + '<br/>' + 'caps: ' + caps);
});
但我希望我能在这里找到更好的答案:)
答案 0 :(得分:1)
我认为最简单的方法就是使用.prev()函数:
$('input[name=bl_caps[]]').each(function(){
// get the previous sibling
var line_ids = $(this).prev().val();
var caps = $(this).val();
alert('line id: ' + line_ids + '<br/>' + 'caps: ' + caps);
});
请注意,只有将隐藏的输入放在 td
元素中时,这才有效,无论如何应该是这样:
<?php foreach(){ ?>
<td>
<input type="hidden" name="line_id[]" id="line_id" value="<?php echo $sbl->BusLineID; ?>"/>
<input type="text" name="bl_caps[]" id="bl_caps"/>
</td>
<?php } ?>
要将值映射到数组,您可以尝试.map()函数:
var line_ids = $('input[name=line_id[]]').map(function(){
return $(this).val();
}).toArray();
请注意,它为您提供了一个jQuery对象,而不是一个真正的数组,因此最后会调用.toArray()
。