如何获得每次迭代的值?

时间:2016-01-25 07:57:27

标签: javascript jquery html laravel laravel-5

我的Laravel View就像这样:

n

我的Javascript是这样的:

    ...
        @foreach($hotel as $key=>$value)    
    ...
           <input type='hidden' value='<?php  echo $value['HCode'].'#'.$value['HName'].'#'.$value['CheckIn'].'#'.$value['CheckOut']   ?>' id='tes'>
    ...
    ...
           {{ $value['HotelNo'] }}      
           {{ $value['HotelName'] }}
    ...     
           <button id="save">More</button>

           <div id="loading"></div>    
    ... 
        @endforeach
    ...

我想获得每次迭代的价值。所以,当我点击“更多”按钮时,我会得到id tes的值。

如何获取每次迭代的值?

解决我问题的任何解决方案?

非常感谢

2 个答案:

答案 0 :(得分:1)

试试这个:您可以将每个迭代html代码放在一个带class="iteration"的div中。将class="tes"分配给输入,因为您不应对所有输入使用相同的ID。另外,将保存按钮ID更改为类并读取tes值,如下面的代码所示

...
        @foreach($hotel as $key=>$value)    
    ...
         <div class="iteration">
           <input type='hidden' value='<?php  echo $value['HCode'].'#'.$value['HName'].'#'.$value['CheckIn'].'#'.$value['CheckOut']   ?>' id='tes'>
    ...
    ...
           {{ $value['HotelNo'] }}      
           {{ $value['HotelName'] }}
    ...     
           <button class="save">More</button>

           <div class="loading"></div>    
    ...   </div>
        @endforeach
    ...

jQuery:获取父迭代div,然后在其中找到tes以读取其值。

$(function(){
    $('.save').click(function () {
        var $parent = $(this).closest('div.iteration');
        var bla = $parent.find('.tes:first').val();
        console.log(bla);
        $parent.find('.loading').html('<img src="http://preloaderss.net/preloaders/287/Filling%20broken%20ring.gif"> loading...');

        $.ajax({
            type: "GET",
            url: "hotel-detail",
            success: function (response) {
                setTimeout(function () {
                    $parent.find('.loading').html('...');
                }, 2000);
            }
        });  
    });
});

答案 1 :(得分:0)

试试这个

<input type='hidden' data-hcode='<?php  echo $value['HCode']; ?>'  data-hname='<?php echo $value['HName']; ?>' data-checkin='<?php echo $value['CheckIn']; ?>' data-checkOut='<?php echo $value['CheckOut'] ?>' id='tes'>

$('#save').click(function () {
    var bla = $('#tes').data();
    $.each(bla, function(k, v){
        console.log(v);
    })
    $('#loading').html('<img src="http://preloaderss.net/preloaders/287/Filling%20broken%20ring.gif"> loading...');

    $.ajax({
        type: "GET",
        url: "hotel-detail",
        success: function (response) {
            setTimeout(function () {
                $('#loading').html('...');
            }, 2000);
        }
    });
});