2010-09-16 55 views
2

對不起,我應該直接發佈腳本而不清理它。請檢查更新後的腳本,現在應該清除一些事情。謝謝!jQuery上一頁()下一頁()問題

考慮下面的JavaScript:

var selected = 0; 
    var options = 0; 

    $('.newListSelected').each(function() { 

     selected = $(this).children('.selectedTxt'); 
     selected = selected.text(); 

     /* Everything before this line works completely fine */ 

     options = $(this).prev(); 

     options.find('option[value=' +selected+ ']').attr('selected', 'selected'); 

    }).remove(); 

和HTML:

<select name="type[]" style="display: none;"> 
    <optgroup> 
     <option value="none">Select</option> 
    </optgroup> 
    <optgroup label="First Group"> 
     <option value="1">One</option> 
     <option value="2">Two</option> 
    </optgroup> 
    <optgroup label="Second Group"> 
     <option value="10">Ten</option> 
     <option value="20">Twenty</option> 
    </optgroup> 
</select> 

<div class="newListSelected"> 
    <div class="selectedTxt">20</div> 
    <ul class="newList"> 
     <!-- Other stuff here --> 
    </ul> 
</div> 

我試圖做的其實是增加了selected屬性對應的選擇選項具有相同值爲.selectedTxt中的文字。在上面的代碼中,它應該添加selected="selected"<option value="20">Twenty</option>

然而,它沒有按預期執行,我也嘗試在prev();以下添加alert(option);,但它沒有輸出任何有用的東西。

謝謝。

+0

Works fine http://jsfiddle.net/HmLjw/然而......你一次只能選擇1個選項......那......他們是什麼,你究竟在做什麼在這裏幫兇? – 2010-09-16 07:35:12

+0

適合我。在我運行代碼後,選擇'2'選項。在正常的選擇框中只能選擇一個選項! – 2010-09-16 07:35:37

+0

您不能選擇所有選定的元素。 – RobertPitt 2010-09-16 07:35:41

回答

4

JavaScript的正常工作,因爲在這裏可以看到:http://jsfiddle.net/4HsXp/

如果您需要能夠在select元素來選擇多個項目,您需要設置multiplesize屬性,像這樣:

<select multiple="multiple" size="2"> 
    <option>1</option> 
    <option>2</option> 
</select> 

參見:http://reference.sitepoint.com/html/select


編輯:

附加console.log聲明到新的代碼仍然沒有任何問題。 Running it on jsfiddle給了我正確的輸出:

jQuery(select) 
Original Value: none 
New Value: 20 
+0

...爲什麼我沒有想到,哦哦+1 :) – 2010-09-16 07:56:19

+0

我已經更新了我的代碼,對於混淆抱歉! – user435216 2010-09-16 09:37:55

+0

@user更新,*仍然*沒有什麼似乎是錯的。你能否詳細說明看似有什麼問題? – 2010-09-16 09:55:40

0

我不知道你正在嘗試做的,但爲什麼不能你只是選擇適當選擇所有選項元素?如果你只想選擇一些選項,那麼你必須添加額外的選擇器屬性。

$('select option').each(function() { 
    $(this).attr('selected', 'selected'); 
}); 
+0

我已經更新了我的代碼,對於混淆抱歉! – user435216 2010-09-16 09:43:55