2011-05-12 29 views
0

在jquery中,我基於php數組中的項目數量即時創建選擇框,並嘗試將每個選擇框選項的值更改爲數組項目。jquery:設置克隆的選擇框值問題

首先,這裏的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  
      }); 
     } 
    }); 

所以...問題是這樣的:

初始框創建和填充工作正常,後續框的創建也是如此。但是,只有第一個選擇框用數組中的適當值設置;其他人仍然是'沒有'選項。

這可能是每個循環中的錯?

我希望這足以讓人明白 - 我很困惑!

回答

0

您是否嘗試過將您想要的實際選項設置爲默認值的「selected」屬性,而不是設置select的值?換句話說,像...

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

+0

質量!真的很簡單,只是無法讓我的頭轉過來。乾杯傑德。 – 2011-05-12 22:42:09

+0

樂意幫忙!順便說一句,這是一個很好的例子,爲了更好的表現和形式,修剪掉一些jQuery:$('#artistArea> .category_block:last .cat_list option [value ='+ elem +']')[0] .selected = true – glortho 2011-05-13 01:23:16

+0

有趣...這讓我失去了 - 雖然這個jQuery速記是完全錯過的東西 - 你能指點我一些文檔,我可以讀到這個嗎? jQuery的深度和能力永遠不會令我驚訝! – 2011-05-14 18:14:38