2012-07-09 31 views
0

我試圖將選定的選項應用於其他下拉菜單,但遇到了應用於所有值的問題。適用於所有'選擇選項'問題

HTML:

<!-- Default drop --> 
<select class="fldSizeSelect" id="" name=""> 
    <option value="option one">-</option> 
    <option value="option two">S</option> 
    <option value="option three">M</option> 
    <option value="option four">L</option> 
    <option value="option five">XL</option> 
</select> 
<select class="fldSize" id="" name=""> 
    <option value="">-</option> 
    <option value="s">S</option> 
    <option value="m" selected="selected">M</option> 
    <option value="l">L</option> 
    <option value="xl">XL</option> 
</select> 
<select class="fldSize" id="" name=""> 
    <option value="">-</option> 
    <option value="s">S</option> 
    <option value="m" selected="selected">M</option> 
    <option value="l">L</option> 
    <option value="xl">XL</option> 
</select> 
<input type="button" value="Apply to all" class="selectedToAll" id="" name=""> 

的Jquery:

$('.selectedToAll').click(function() { 
    var position = $('.fldSizeSelect option:selected').index();   
    $('.fldSize option').eq(position).attr('selected', 'selected'); 
}); 

目前如果我從頂部下拉選擇下來,然後單擊選擇所有它只適用的價值,第一個下拉帶班'fldSize'。我嘗試使用每個(),但沒有運氣。

我最初得到的價值和適用於所有,但這是由於第一個選項被覆蓋,以及默認值導致的問題(所以如果'M'被選中並適用於所有輸出爲下面的下拉變成 - M,S,M,L,XL)。

使用當前方法正確的選項適用,但只適用於第一次下拉不全。任何幫助表示讚賞。

回答

-1
$('.selectedToAll').click(function() { 
    var position = $('.fldSizeSelectoption:selected').index();  
    $('.fldSize option').eq(position).attr('selected', 'selected'); 
}); 

您必須在.fldSize和option之間放置一個空格。

+0

我想這是一個錯字,原因它的編輯現在:) – Sllix 2012-07-09 08:28:20

+0

雅對不起是一個錯字,感謝雖然發現:) – Andross 2012-07-09 08:36:23

0

爲了適用於所有.fldSize選擇字段,你應該使用each

$('.selectedToAll').click(function() { 
    var position = $('.fldSizeSelect option:selected').index(); 
    $('.fldSize').each(function() { 
     $(this).children().eq(position).attr('selected', 'selected'); 
    }); 
});​ 

DEMO:http://jsfiddle.net/g46P6/

+0

啊!非常感謝VisioN :)非常棒。 – Andross 2012-07-09 08:33:12

+0

@Andross歡迎您!在你的情況下,它發生是因爲你將'each'應用於'option'元素而不是'select'元素。 – VisioN 2012-07-09 08:34:31

0

爲什麼你不能使用值?更改HTML中的第一部分:

<select class="fldSizeSelect" id="" name=""> 
    <option value="">-</option> 
    <option value="s">S</option> 
    <option value="m">M</option> 
    <option value="l">L</option> 
    <option value="xl">XL</option> 
</select> 

,然後做到這一點:

$('.selectedToAll').click(function() { 
    var value = $('.fldSizeSelect').val(); 
    $('.fldSize').val(value); 
}); 
0

試試這個:

$('.selectedToAll').click(function() { 
    var position = $('.fldSizeSelect option:selected').index();   
    $('.fldSize:eq(0) option').eq(position).prop('selected', true); 
    $('.fldSize:eq(1) option').eq(position).prop('selected', true); 
}); 

http://jsfiddle.net/JkfcB/