如何从jquery .each()函数获取索引值

时间:2011-07-26 03:55:48

标签: php jquery

我无法从中获取另一个字段的索引 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);

                        });

但我希望我能在这里找到更好的答案:)

1 个答案:

答案 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()