Javascript 为什么IE不能用$(element.val(“”)取消选择选项;?

Javascript 为什么IE不能用$(element.val(“”)取消选择选项;?,javascript,jquery,internet-explorer,Javascript,Jquery,Internet Explorer,虽然其他浏览器看起来不错,但IE7对我的10行javascript并不友好 所有的小代码都可以在这里找到: 我使用$element.val;重置选项选择,但在IE7下不起作用。基本上,它允许在3个选择中进行多次选择,即使有JS应该阻止它 感谢您的建议。您可以选择所有选项并使用以下命令将道具更改为false,而不是设置select的值: …或同时使用以下两种方法: .find('select[id!='+node.attr('id')+'] option').prop('selected', fa

虽然其他浏览器看起来不错,但IE7对我的10行javascript并不友好

所有的小代码都可以在这里找到:

我使用$element.val;重置选项选择,但在IE7下不起作用。基本上,它允许在3个选择中进行多次选择,即使有JS应该阻止它


感谢您的建议。

您可以选择所有选项并使用以下命令将道具更改为false,而不是设置select的值:

…或同时使用以下两种方法:

.find('select[id!='+node.attr('id')+'] option').prop('selected', false).parent().val('');

您可以选择所有选项并使用以下命令将道具更改为false,而不是设置选择的值:

…或同时使用以下两种方法:

.find('select[id!='+node.attr('id')+'] option').prop('selected', false).parent().val('');
试一试

取消选择所有选项。或者,代替每个循环,您可以使用.propselectedIndex,-1相当于使用.val

顺便说一句,根据,您可以传递一个要选择的选项数组或null,而不是空数组:

.val([]);
试试看

.each(function(i, element) {
    element.selectedIndex = -1;
})
取消选择所有选项。或者,代替每个循环,您可以使用.propselectedIndex,-1相当于使用.val

顺便说一句,根据,您可以传递一个要选择的选项数组或null,而不是空数组:

.val([]);

您应该使用.prop来获取id值,而不是.attr-我不确定这是否是问题所在。您的代码应该是node.nest'form'。find'select'。notthis.val@尖刻:应该没什么区别,不过id道具是反射性的,虽然它可能更快。请在问题中发布你的代码。问题应该能够在没有外部链接的情况下独立存在。@Bergi旧版本的IE不会从对getAttribute的调用中返回元素属性。您应该使用.prop来获取id值,而不是.attr-我不确定这是否是问题所在。您的代码应该是node.closest'form'。find'select'。notthis.val@尖刻:应该没什么区别,不过id道具是反射性的,虽然它可能更快。请在问题中发布你的代码。问题应该能够独立存在,无需外部链接。@Bergi旧版本的IE不会从对getAttribute的调用中返回元素属性。请将答案发布到答案中。如果JSFIDLE链接死亡或移动,这个答案对未来的访问者来说将是无用的。请将答案发布到答案中。如果JSFiddle链接死了或移动了,这个答案对未来的访问者来说就没用了。