【问题标题】:Loop on array javascript show result data-attribute循环数组 javascript 显示结果数据属性
【发布时间】:2018-03-21 13:42:52
【问题描述】:

我的脚本有问题。 我在 php 中有一个循环,它在 html 中显示这个,这很好:

<?php foreach ($locations as $key => $value) : ?>

     <div class="storelocator-info" data-id="<?= $value['codepostal']; ?>" 
           style="display: block;"> 
         <p class="title-depot"><?= $value['name']; ?></p>
   </div>
<?php endforeach ; ?>

现在我有一个搜索栏,我在控制器中输入 11 或 11111 之类的邮政编码发送 ajax,我以 json 格式返回结果,如下所示:

try {
    jQuery.ajax({
        url: url,
        dataType: 'json',
        type: "POST",
        data: form.serialize(),
        success: function(data) {
            if (data['success'] === false){         

                var index;
                var a = data.zip;
                for (index = 0; index < a.length; ++index) {

                    jQuery('.storelocator-info').hide();
                    jQuery('.storelocator-info[data-id='+a[index]+']').show();
                }

                jQuery('.storelocator-error').hide();
            } else{
                jQuery('.moulinroty-loader').hide();
                jQuery('.storelocator-info').hide();
                jQuery('.storelocator-error').fadeToggle();
            }   
        }
    });
} catch (e) {
    console.log('error' + e);
}

data.zip 是这样的数组 ['85000,85001']; 我只想用 javascript 或 jquery 显示 data.zip == data-id 属性的 "" 。

结果仅显示我的数组中 data-id = 85001 的最后一个结果, 所以我想显示 85000 和 85001

你能解释一下我的错误或错误在哪里吗?

感谢帮助

【问题讨论】:

  • 你的错误应该在你的鼻子和你的嘴之间。对此感到抱歉
  • 可能是复制错误,但&lt;div class="storelocator-info" data-id="&lt;?= $value['zipdode']; style="display: block;"&gt; 缺少 php 的结束标记

标签: javascript jquery arrays loops


【解决方案1】:

您在循环的每次迭代中都隐藏了所有元素。先隐藏,再显示需要显示的:

var a = data.zip;
jQuery('.storelocator-info').hide();
for (var index = 0; index < a.length; ++index) {
  jQuery('.storelocator-info[data-id=' + a[index] + ']').show();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 2018-04-27
    • 2016-11-25
    • 2014-11-07
    • 2021-01-30
    相关资源
    最近更新 更多