Jquery清除所有选定的选项不起作用

时间:2018-04-01 20:05:33

标签: javascript jquery

我有一个选择下拉列表,但选项很少。当我尝试使用jquery选择一个选项时,我在html源代码中看到,所选选项有" selected = selected"作为属性。

当我尝试通过jquery选择另一个选项时,它还添加了选项" selected = selected"作为属性。

但它在html源代码中添加了2个选项。我尝试通过代码删除选定的选项,但它从未奏效。

如何删除下拉列表中所有选项的selected = selected属性?

我尝试了以下选项,但没有任何效果

    $('select[id^="myDropdown"]').find('option:selected').removeProp("selected");
    $('select[id^="myDropdown"]').find('option:selected').removeAttr("selected");
$('select[id^="myDropdown"]').removeAttr('selected');
$('select[id^="myDropdown"] option:selected').removeAttr('selected');
$('select[id^="myDropdown"] option:selected').removeProp('selected');
$('select[id^="myDropdown"] option:selected').prop('selected',false);

基本Jquery代码

$(document).on("click", ".list-group a", function () {
var selected = $(this).text();
});

HTML

<div class=".list-group">
<a id="clickMeTOSelectOption">test 1</a>
<a id="clickMeTOSelectOption">test 2</a>
<a id="clickMeTOSelectOption">test 3</a>
</div>

3 个答案:

答案 0 :(得分:1)

基本<select>元素

基本<select>菜单始终只选择一个选项。通过选择其他选项可以取消选择所选选项。

这可以通过jQuery实现如下......

$('#mySelect').val('someValue');

...或POJS如下:

mySelectElemlent.selectedIndex = 3; // some zero-based index

<强> DEMO

<select multiple>元素

<select multiple>菜单的行为有所不同。其选择的选项可以独立于其他选项进行选择/取消选择。

$('#mySelectMultiple option').eq(1).prop('selected', false);
$('#mySelectMultiple option').eq(3).prop('selected', true);

<强> DEMO

注意:使用基本<select>.prop('selected', false);的效果不确定(未指定)。在大多数(可能是所有)浏览器中,将选择第一个(第0个)选项。

答案 1 :(得分:1)

您的代码中存在一些错误。

var select = $('#myDropdown');
select.children('option').prop('selected',false);
select.selectpicker('refresh');

我没有尝试代码。如果有任何错误,请返回。

答案 2 :(得分:0)

我尝试迭代所有下拉选项并删除该属性。感谢每一个人的帮助。

$("#myDropDown > option").each(function () {
   this.removeAttribute("selected");
});