无法取消选中“已选中”

时间:2014-05-16 14:18:09

标签: javascript jquery

我正在创建用于复制html元素的插件,我对<select>有疑问。 将新元素附加到容器后,我无法更改<select>值。当我试图点击它时总是选择第一个值。当我通过浏览器控制台手动删除"selected="selected"时,它开始工作。但不知何故,我无法通过JavaScript删除它。 我试过了:

objElement.find('select').each(function(){                        
    var objThs = $(this);    
    //option 1
    objThs.val([]);
    //option 2
    objThs[0].selectedIndex = -1
    //option 3
    objThs.prop('selectedIndex', -1);
    //option 4
    objThs.find('[selected]').prop('selected', false);                       
});

但没有任何改变。 当然,如果我控制日志objThs.find('[selected]').length它返回1。

2 个答案:

答案 0 :(得分:0)

必须至少选择一个选择选项(或显示相反)。为什么不将第一个<option>添加为虚拟选项并默认为?

<select>
    <option>Please choose one</option>
    <option>...</option>
</select>

答案 1 :(得分:0)

好的,我找到了解决方案:

objThs.find('option').removeAttr('selected')

工作正常。但我仍然不知道为什么其他选择失败了?