获取当前选中的选项

20 浏览
0 Comments

获取当前选中的选项

如何获取当前选中的选项ID?现在总是显示id="1"。

0
0 Comments

在上述内容中,出现了一个问题(Get current selected option)以及相关的讨论。问题是如何获取当前选择的选项,即获取被选中选项的ID。下面是问题出现的原因以及解决方法:

原因:

问题的原因是需要在选择框的选项改变时获取当前选中的选项的ID。在给选择框绑定了change事件后,通过使用jQuery的find方法来查找被选中选项的ID。

解决方法:

通过使用jQuery的change方法来绑定选择框的change事件,然后使用find方法来查找被选中选项的ID。下面是解决方法的代码:

$('#sel').change(function(){
   alert($(this).find('option:selected').attr('id'));
});

这个方法可以正常工作,但是有人认为这种方法比起Esailia的答案来说并不好。因为这种方法类似于走一条风景线,不够简洁美观。

有人认为Esailia的答案更好,因为它更容易理解,特别适合熟悉jQuery的开发者。而且问题本身也提到了jQuery。但是也有人认为这种方法不好,因为它使用了不必要的抽象层级,直接使用原生JS代码会更清晰。

有人问为什么这种方法比Esailija的方法更差,但是没有给出非挑衅性的理由。实际上,Esailija的方法性能更好,因为this.onchange已经更新了this.selectedIndex。而使用find方法则需要对整个元素树进行查询,虽然范围很小,但是还是会影响性能。

Esailija的方法更好,因为首先应该给出原生JS的解决方法,其次在这个案例中,原生JS的性能更好。

0
0 Comments

问题的原因是HTML中的

以下是解决方法的代码示例:



DEMO: [http://jsfiddle.net/yPYL5/](http://jsfiddle.net/yPYL5/)

有人误解了问题,认为OP想要获取选项对象(id属性),而不是值。实际上,OP想要根据选中的选项获取1、2或3的值。正确的做法是给

有人建议更改HTML代码,但这并不能解决OP的问题。更正的方式是教会OP正确的做法,而不是使用错误的方法来解决问题。

有人认为你的解决方案假设OP想要获取选项的value属性,但实际上OP已经在其他地方使用了value属性,所以这并不是一个好的解决方法。因此,最好的做法是回答问题,而不是暗示OP不知道自己在做什么。

问题中的示例代码过于简化,并且包含无效的HTML结构。OP也没有提供足够的细节,导致误解了问题。

0
0 Comments

问题的出现原因是在给下拉菜单添加change事件时,使用了错误的选择器$("#sel"),导致无法正确获取当前选中的选项。

解决方法是将选择器修改为正确的选择器$("#sel option"),这样就可以正确获取当前选中的选项。修改后的代码如下所示:

$("#sel option").change(function(){
   alert( this.options[this.selectedIndex].id );
})

这样就可以正确地获取当前选中的选项了。

0