$('#mySelectBox option').each(function() {
if ($(this).isChecked())
alert('this option is selected');
else
alert('this is not');
});
显然, isChecked
不起作用。 所以我的问题是什么是这样做的正确方法? 谢谢。
$('#mySelectBox option').each(function() {
if ($(this).isChecked())
alert('this option is selected');
else
alert('this is not');
});
显然, isChecked
不起作用。 所以我的问题是什么是这样做的正确方法? 谢谢。
UPDATE
更直接的jQuery的方法来选择的办法是:
var selected_option = $('#mySelectBox option:selected');
回答这个问题.is(':selected')
是你在找什么:
$('#mySelectBox option').each(function() {
if($(this).is(':selected')) ...
非jQuery的(可以说是最好的做法)的方式来做到这一点是:
$('#mySelectBox option').each(function() {
if(this.selected) ...
尽管如此,如果你只是寻找选定的值尝试:
$('#mySelectBox').val()
如果您正在寻找的选定值的文本做:
$('#mySelectBox option').filter(':selected').text();
退房: http://api.jquery.com/selected-selector/
下一次查找重复做题:
获取当前选定的选项或设置所选选项或如何获得$(本)中的jQuery选择的选项? 或选项[选定=真]不起作用
你可以选择的选项是这样的:
$('#mySelectBox option:selected')...
现场演示
但是,如果你想要遍历所有的选项,并做this.selected
代替this.isChecked
不存在:
$('#mySelectBox option').each(function() {
if (this.selected)
alert('this option is selected');
else
alert('this is not');
});
现场演示
更新:
你有足够的答案建议你使用这个的:
$(this).is(':selected')
好了,这是可以做到快了很多,更容易与this.selected
为什么你应该使用它,而不是本机的DOM元素的方法?
阅读知道在你的DOM属性和功能 jQuery
标签信息
如果你不熟悉或舒服is()
你可以只检查的数值prop("selected")
正如在这里看到 :
$('#mySelectBox option').each(function() {
if ($(this).prop("selected") == true) {
// do something
} else {
// do something
}
});
编辑 :
作为@gdoron在评论中指出,更快,最适合的方式访问选项的选择的特性是通过DOM选择。 这里是小提琴更新显示这个动作。
if (this.selected == true) {
看起来很好的工作! 谢谢gdoron。
使用
$("#mySelectBox option:selected");
测试是否其特定选项myoption
:
if($("#mySelectBox option:selected").text() == myoption){
//...
}
认为这是你的选择列表:
<select onchange="var optionVal = $(this).find(':selected').val(); doSomething(optionVal)">
<option value="mostSeen">Most Seen</option>
<option value="newst">Newest</option>
<option value="mostSell">Most Sell</option>
<option value="mostCheap">Most Cheap</option>
<option value="mostExpensive">Most Expensive</option>
</select>
那么你检查所选的选项是这样的:
function doSomething(param) {
if ($(param.selected)) {
alert(param + ' is selected!');
}
}
在我来说,我不知道为什么选的是总是如此。 所以我能想出的唯一办法是:
var optionSelected = false;
$( '#select_element option' ).each( function( i, el ) {
var optionHTMLStr = el.outerHTML;
if ( optionHTMLStr.indexOf( 'selected' ) > 0 ) {
optionSelected = true;
return false;
}
});
如果你只是想如果选择了选项来检查,那么你就需要通过所有选项进行迭代。 做就是了
if($('#mySelectBox').val()){
// do something
} else {
// do something else
}
注意:如果你有一个值,你想选择= 0的一个选项,您需要将如果条件更改为$('#mySelectBox').val() != null
您可以通过jQuery的使用是这样的:
$(document).ready(function(){ $('#panel_master_user_job').change(function () { var job = $('#panel_master_user_job').val(); alert(job); }) })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select name="job" id="panel_master_user_job" class="form-control"> <option value="master">Master</option> <option value="user">User</option> <option value="admin">Admin</option> <option value="custom">Custom</option> </select>
如果你需要检查选项选择状态特定值 :
$('#selectorId option[value=YOUR_VALUE]:selected')