jQuery:设置克隆的选择框值问题

问题描述 投票:0回答:1

在jQuery中,我正在根据PHP数组中的项目数动态创建选择框,并尝试将每个选择框选项的值更改为数组项的值。

首先,这里是HTML:

<div id="artistArea">
  <div class="category_block">
    <select name="artistSelect[]" class="cat_list">
        <option value="">- none -</option> 
    </select>
  </div>
</div>

这里是数组转换:

var arrayFromPHP = <?php echo json_encode($exhibArray) ?>; // There's our array from php->jquery

然后我首先填充第一个选择中的选项,然后在“成功”回调的“每个”循环中创建后续框:

$.ajax({
    url: 'artistpop.php',
    success: function(data){
        $('.cat_list').append(data); //Sets options for first select box
        $.each(arrayFromPHP, function (i, elem) { //loop through our array values
            $("#artistArea > .category_block:last .cat_list").val(elem); //set the select box value
            $('#artistArea > .category_block:last').after($('#artistArea > .category_block:last').clone()); //clone the previous select box     
        });
    }   
});

所以...问题是:

最初的盒子创建和填充工作正常,随后的盒子也是如此。但是,只有第一个选择框设置了数组中的适当值;其他的则保留为“无”选项。

在每个循环中这可能有问题吗?

我希望这很清楚可以理解-我很困惑!

jquery each
1个回答
0
投票

您是否尝试过在想要作为默认选项的实际选项上设置“ selected”属性,而不是设置select的值?换句话说,类似...

$('#artistArea > .category_block:last .cat_list option[value=' + elem + ']').attr('selected','selected');

© www.soinside.com 2019 - 2024. All rights reserved.