選択ボックスから項目を削除したり、選択ボックスに項目を追加したりするにはどうすればよいですか。私はjQueryを実行していますが、それによってタスクが簡単になります。以下は選択ボックスの例です。
<select name="selectBox" id="selectBox">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
オプションを削除します。
$("#selectBox option[value='option1']").remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="selectBox" id="selectBox">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
オプションを追加してください。
$("#selectBox").append('<option value="option5">option5</option>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="selectBox" id="selectBox">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
これで選択したアイテムを削除することができます。
$("#selectBox option:selected").remove();
ドロップダウンリストではなくリストがある場合に便利です。
window.onload = function ()
{
var select = document.getElementById('selectBox');
var delButton = document.getElementById('delete');
function remove()
{
value = select.selectedIndex;
select.removeChild(select[value]);
}
delButton.onclick = remove;
}
アイテムを追加するには、2番目の選択ボックスを作成します。
var select2 = document.getElementById('selectBox2');
var addSelect = document.getElementById('addSelect');
function add()
{
value1 = select2.selectedIndex;
select.appendChild(select2[value1]);
}
addSelect.onclick = add;
JQueryではありません。
アイテムを削除する
$("select#mySelect option[value='option1']").remove();
アイテムを追加する
$("#mySelect").append('<option value="option1">Option</option>');
オプションを確認する
$('#yourSelect option[value=yourValue]').length > 0;
選択したオプションを削除する
$('#mySelect :selected').remove();
これはそれをするはずです:
$('#selectBox').empty();
私はjQuery のセレクトボックス操作プラグイン がこのようなことに役立つと思います。
インデックス、値、または正規表現でアイテムを簡単に削除できます。
removeOption(index/value/regex/array[, selectedOnly])
Remove an option by
- index: $("#myselect2").removeOption(0);
- value: $("#myselect").removeOption("Value");
- regular expression: $("#myselect").removeOption(/^val/i);
- array $("#myselect").removeOption(["myselect_1", "myselect_2"]);
すべてのオプションを削除するには、$("#myselect").removeOption(/./);
を実行します。
ハードコードなしで動的に値を追加/削除する:
// selectから値を動的に削除します
$("#id-select option[value='" + dynamicVal + "']").remove();
//選択する動的な値を追加
$("#id-select").append('<option value="' + dynamicVal + '">' + dynamicVal + '</option>');
私は役に立つように思われる2つのページを見つけました、それはASP.Netのために書かれています、しかし同じことが当てはまるべきです:
見ている人のためにこれを補強するだけで、次のことも可能になります。
$("#selectBox option[value='option1']").hide();
そして
$("#selectBox option[value='option1']").show();
function removeOptionsByValue(selectBox, value)
{
for (var i = selectBox.length - 1; i >= 0; --i) {
if (selectBox[i].value == value) {
selectBox.remove(i);
}
}
}
function addOption(selectBox, text, value, selected)
{
selectBox.add(new Option(text, value || '', false, selected || false));
}
var selectBox = document.getElementById('selectBox');
removeOptionsByValue(selectBox, 'option3');
addOption(selectBox, 'option5', 'option5', true);
<select name="selectBox" id="selectBox">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
jQuery(function($) {
$.fn.extend({
remove_options: function(value) {
return this.each(function() {
$('> option', this)
.filter(function() {
return this.value == value;
})
.remove();
});
},
add_option: function(text, value, selected) {
return this.each(function() {
$(this).append(new Option(text, value || '', false, selected || false));
});
}
});
});
jQuery(function($) {
$('#selectBox')
.remove_options('option3')
.add_option('option5', 'option5', true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="selectBox" id="selectBox">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
私はselectから最初のオプションを削除しなければなりませんでした、IDなし、クラスだけで、私はこのコードをうまく使いました:
$('select.validation').find('option:first').remove();
私はoption
を追加する別の方法を提案したいだけです。 value
とtext
を文字列として設定する代わりに、次のようにすることもできます。
var option = $('<option/>')
.val('option5')
.text('option5');
$('#selectBox').append(option);
これは、オプションの値とテキストを動的に追加するときのエラーが少ないソリューションです。
誰かがselectの中でdeleteALLオプションを必要とするなら、私はlitle関数をしました。
私はあなたがそれが役に立つと思うことを望みます
var removeAllOptionsSelect = function(element_class_or_id){
var element = $(element_class_or_id+" option");
$.each(element,function(i,v){
value = v.value;
$(element_class_or_id+" option[value="+value+"]").remove();
})
}
走ればいい
removeAllOptionsSelect("#contenedor_modelos");
これは選択ボックスのHTMLです
<select name="selectBox" id="selectBox">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="option4">option4</option>
</select>
あなたが完全に選択ボックスからオプションを削除して追加したいときは、あなたはこのコードを使用することができます
$("#selectBox option[value='option1']").remove();
$("#selectBox").append('<option value="option1">Option</option>');
選択ボックスからオプションを非表示にして表示する必要があるが、削除しない場合は、このコードを使用できます
$("#selectBox option[value='option1']").hide();
$("#selectBox option[value='option1']").show();
時には選択ボックスから選択されたオプションを削除する必要がある
$('#selectBox :selected').remove();
$("#selectBox option:selected").remove();
あなたがすべてのオプションを削除する必要があるときにこのコード
('#selectBox').empty();
最初のオプションまたは最後のコードが必要な場合
$('#selectBox').find('option:first').remove();
$('#selectBox').find('option:last').remove();