13 ответов:
использовать removeAttr...
$("option:selected").removeAttr("selected");или Prop
$("option:selected").prop("selected", false)
есть много ответов здесь, но к сожалению все они довольно старые и поэтому полагаются на
attr/removeAttrчто на самом деле не так.@coffeeyesplease правильно упоминает, что хорошее кросс-браузерное решение должно использовать
$("select").val([]);еще одно хорошее кросс-браузерное решение -
// Note the use of .prop instead of .attr $("select option").prop("selected", false);вы можете видеть, что он запускает самотестирование здесь. Протестировано на IE 7/8/9, FF 11, Chrome 19.
Это давно просили, и я не проверял это на старых браузерах, но мне кажется, гораздо проще ответить
$("#selectID").val([]);.val () работает и для selecthttp://api.jquery.com/val/
ответы до сих пор работают только для нескольких вариантов в IE6 / 7; для более распространенных не-multi select вам нужно использовать:
$("#selectID").attr('selectedIndex', '-1');это объясняется в сообщении, связанном с flyfishr64. Если вы посмотрите на него, вы увидите, как есть 2 случая - multi / non-multi. Там нет ничего, что мешает вам chaning как для полного решения:
$("#selectID").attr('selectedIndex', '-1').find("option:selected").removeAttr("selected");
Самый Простой Метод
$('select').val('')Я просто использовал это на себе и это сработало.
Я jQuery 1.7.1.
быстрый google нашел этот пост это описывает, как сделать то, что вы хотите для одного и нескольких списков выбора в IE. Решение кажется довольно элегантным:
$('#clickme').click(function() { $('#selectmenu option').attr('selected', false); });
$("#selectID option:selected").each(function(){ $(this).removeAttr("selected"); });это будет повторяться через каждый элемент и отменить выбор только те, которые проверяются
Oh jquery.
поскольку еще есть собственный подход javascript, я чувствую необходимость его предоставить.
var select = document.querySelector('select'); //hopefully you'll use a better selector query select.selectedIndex = 0; // or -1, 0 sets it to first option, -1 selects no optionsи просто, чтобы показать вам, насколько быстрее это: ориентир
большое спасибо за решение.
решение для одного выбора комбинированного списка работает отлично. Я нашел это после поиска на многих сайтах.
$("#selectID").attr('selectedIndex', '-1').children("option:selected").removeAttr("selected");
обычно, когда я использую меню выбора, каждый параметр имеет значение, связанное с ним. Например
<select id="nfl"> <option value="Bears Still...">Chicago Bears</option> <option selected="selected" value="Go Pack">Green Bay Packers</option> </select> console.log($('#nfl').val()) logs "Go Pack" to the console Set the value to an empty string $('#nfl').val("") console.log($('#nfl').val()) logs "" to the consoleтеперь это не удаляет выбранный атрибут из опции, но все, что я действительно хочу, это значение.
Comments