【问题标题】:Toggle foreach getting value of div class切换 foreach 获取 div 类的值
【发布时间】:2014-01-23 20:10:52
【问题描述】:

我想获取 div 类“nameregion”的值,我必须在 Ajax 中通过 POST 发送它。 我有一个 foreach,这是我尝试过的,但它不起作用,我收到了 regionid 的空白。

谢谢。

foreach($data as $plus) {

if($prev_type != $plus['FRN_TYPE_ENTREE_VALUE']) {
       $prev_type = $plus['FRN_TYPE_ENTREE_VALUE'];
       echo ' <div style="color: #708090; font-size: 24px; margin-bottom: 30px; margin-left: 20px; margin-top: 25px; text-align: left;">
       '.$plus['FRN_TYPE_ENTREE_VALUE'].'</div>';
    } 

echo '<a href="#" class="region" value="'.$plus['FRN_TYPE_ENTREE'].'"><img src="images/plus.png" style="float: left; margin-top:-5px; margin-left: 15px; margin-right: 5px;"></a>
<div style="color: #000; font-size: 20px; margin-bottom: 30px; margin-left: 20px; margin-top: 0px; text-align: left;" class="nameregion" value="oui">'.$plus['FRN_RGN_VALUE'].'</div></a>
<div class="mytoggle"><div class="val"></div></div>';
}
<script type="text/javascript">
$(".mytoggle").hide();
$('.region').click(function(){
$(this).next().next('.mytoggle').toggle('fast');
var catalogue = "catalogue";
var regionid = $(this).next().val();
            $.ajax({
            type: 'POST',
            url: 'function.php',
            data: {'catalogue': catalogue, 'regionid': regionid },
            success: function (data) {
            $(".val").append(""+data+"").fadeIn(1000);
           }
           });
          $(".val").empty();
    return false; //to avoid the link from working
});
</script>

我想在这里获取值“oui”:

<div style="color: #000; font-size: 20px; margin-bottom: 30px; margin-left: 20px; margin-top: 0px; text-align: left;" class="nameregion" value="oui">'.$plus['FRN_RGN_VALUE'].'</div></a>

谢谢。

【问题讨论】:

    标签: jquery ajax foreach


    【解决方案1】:

    尝试改变这个:

    var regionid = $(this).next().val();
    

    到这里:

    var regionid = $('.nameregion').html();
    

    如果你的 div 类为 nameregion 是你点击的元素之后的下一个元素,你可以使用这个:

    var regionid = $(this).next().html();
    

    但只有当你点击的元素之后是下一个元素


    更新

    改变这个

    <div style="color: #000; font-size: 20px; margin-bottom: 30px; margin-left: 20px; margin-top: 0px; text-align: left;" class="nameregion" value="oui">'.$plus['FRN_RGN_VALUE'].'</div></a>
    

    到这里:

    <div style="color: #000; font-size: 20px; margin-bottom: 30px; margin-left: 20px; margin-top: 0px; text-align: left;" class="nameregion" data-value="oui">'.$plus['FRN_RGN_VALUE'].'</div></a>
    

    并以这种模式检索它:

    var regionid = $('.nameregion').data('value');
    

    Div 元素没有value 属性,但您可以像这样使用数据属性:data-value="oui"

    【讨论】:

    • 如果我这样做,我会得到'.$plus['FRN_RGN_VALUE']。',我想得到“oui”。之后我将为每个 foreach 放置不同的数据值
    • div 元素没有值属性请参阅我的更新@user3162341
    • 完美,这就是我想要的,数据值解决了我的问题,谢谢
    • 很高兴为您提供帮助! @user3162341
    • 我有一个小问题,例如,如果我输入 '.$plus['FRN_RGN_VALUE_ID'].',在 js 中我得到的每个结果都是“25”,所以同样,我认为我必须将 next 与 data-value 一起使用?
    【解决方案2】:

    div 元素没有value。尝试使用data- 属性:

    <div data-value="oui"></div>
    

    var regionid = $(this).next().data('value');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 2021-03-15
      • 2021-05-14
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 2013-07-07
      相关资源
      最近更新 更多