假設有一個選項列表可用,那麼如何用新的<option>
s更新<select>
?如何用jQuery更改<select>的選項?
回答
您可以通過使用empty
方法刪除現有的選項,然後添加新選項:
var option = $('<option></option>').attr("value", "option value").text("Text");
$("#selectId").empty().append(option);
如果你有你的新選項中的對象,您可以:
var newOptions = {"Option 1": "value1",
"Option 2": "value2",
"Option 3": "value3"
};
var $el = $("#selectId");
$el.empty(); // remove old options
$.each(newOptions, function(key,value) {
$el.append($("<option></option>")
.attr("value", value).text(key));
});
編輯:爲了去除所有的選項,但首先,你可以使用:gt
選擇,讓所有的option
元素與指數大於零且remove
他們:
$('#selectId option:gt(0)').remove(); // remove all options, but not the first
$('#comboBx').append($("<option></option>").attr("value",key).text(value));
其中comboBx是您的組合框ID。
或者您可以將選項附加爲已存在的innerHTML的字符串,然後分配給選擇的innerHTML。
編輯
如果你需要保持第一個選項,並刪除所有其他的,那麼你可以使用
var firstOption = $("#cmb1 option:first-child");
$("#cmb1").empty().append(firstOption);
我扔CMS的出色答卷進入一個快速的jQuery擴展:
(function($, window) {
$.fn.replaceOptions = function(options) {
var self, $option;
this.empty();
self = this;
$.each(options, function(index, option) {
$option = $("<option></option>")
.attr("value", option.value)
.text(option.text);
self.append($option);
});
};
})(jQuery, window);
它需要包含「text」和「value」鍵的對象數組。所以用法如下:
var options = [
{text: "one", value: 1},
{text: "two", value: 2}
];
$("#foo").replaceOptions(options);
對於一些奇怪的原因從CMS解決方案這部分
$el.empty(); // remove old options
,我沒有工作,所以不是說我只是用這個
el.html(' ');
它的工作原理。所以,我的工作代碼現在看起來像這樣:
var newOptions = {
"Option 1":"option-1",
"Option 2":"option-2"
};
var $el = $('.selectClass');
$el.html(' ');
$.each(newOptions, function(key, value) {
$el.append($("<option></option>")
.attr("value", value).text(key));
});
例如,如果你的HTML代碼包含此代碼:
<select id="selectId"><option>Test1</option><option>Test2</option></select>
爲了改變裏面你選擇選項的列表,你可以使用此代碼波紋管。當你的名字選擇命名爲selectId。
var option = $('<option></option>').attr("value", "option value").text("Text");
$("#selectId").html(option);
在這個例子中
上述,我只有一個新的選項改變選項舊列表。
OP爲什麼要這樣做?請添加一個解釋,你做了什麼,爲什麼你這樣做,不僅是爲了OP,而是爲了將來的訪問者SO。 –
刪除和添加DOM元素比修改現有元素要慢。
如果你的選項設置有相同的長度,你可以做這樣的事情:
$('#my-select option')
.each(function(index) {
$(this).text('someNewText').val('someNewValue');
});
如果你的新選項集有不同的長度,你可以刪除/添加你真的需要空的選項,使用一些技巧如上所述。
如果我們更新<select>
不斷,我們需要保存前值:
var newOptions = {
'Option 1':'value-1',
'Option 2':'value-2'
};
var $el = $('#select');
var prevValue = $el.val();
$el.empty();
$.each(newOptions, function(key, value) {
$el.append($('<option></option>').attr('value', value).text(key));
if (value === prevValue){
$el.val(value);
}
});
$el.trigger('change');
這是否幫助?
$("#SelectName option[value='theValueOfOption']")[0].selected = true;
這個問題是關於動態地添加
- 1. 如何用jquery更改選項的值
- 2. 如何更改jquery的選項
- 3. 如何使用jQuery更改選擇框的選定選項?
- 4. 用jQuery更改選定的選項
- 5. jQuery更改所選項目更改選定選項的背景
- 6. jQuery UI選項卡 - 如何更改選項卡的位置
- 7. 如何使用jQuery檢查所選選項的更改?
- 8. 用jQuery動態更改選擇選項
- 9. 使用jQuery更改選項的文本
- 10. 更改所選的選項Jquery的
- 11. jquery,jqplot更改選項值
- 12. jQuery的 - 更改選項值選擇
- 13. 獲取選定的選項更改jquery
- 14. 如何更改選項的文本選擇在jQuery的
- 15. jquery mobile - 如何更改函數調用中的選項?
- 16. 如何讓用戶更改jQuery UI滑塊的選項?
- 17. jQuery:如何更改所選選項的顏色?
- 18. 如何更改高亮顏色在jQuery Mobile的選擇選項
- 19. 使用jquery函數更改選項卡
- 20. 如何使用jQuery動態篩選<select >的選項?
- 21. 如何使用選項更改信息
- 22. 更改選項的值是在jQuery的
- 23. 如何使用Jquery更改Bootstrap下拉選定項?
- 24. 如何使用jQuery更改輸入選項文本?
- 25. 如何在jQuery UI選項卡中禁用哈希更改
- 26. 如何處理單選按鈕列表選項更改與jQuery
- 27. 如何更改JQuery UI日期選取器選項?
- 28. 如何在ui可選jquery動態更改選項列表
- 29. 我如何更改默認選項在選擇jquery
- 30. 其中<select>更改另一個選項中的選項<select>
如何在空()時保持第一個選項? 。 – Mask
1爲'$( '#SELECTID選項:GT(0)')除去();' –
如果使用自舉選](https://silviomoreto.github.io/bootstrap-select/)然後添加。以下替換選項後刷新選擇選擇器:'$(「#SELECTID」)selectpicker(「刷新」); $( '#SELECTID')selectpicker( '渲染');'。否則,新選項將不會顯示在您的選擇列表中。 – phn