$('#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
是行不通的。所以我的问题是执行此操作的正确方法是什么?谢谢。
Answers:
更新
对于所选选项,更直接的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/
下次寻找重复的SO问题:
获取当前选定的选项 或 设置选定的选项 或 如何在jQuery中获得$(this)选定的选项? 或 option [selected = true]不起作用
this.selected
可以用来代替$(this).is(":selected")
我想不需要jsperf,对吗?我没有反对使用jQuery!的方法,但是在需要时使用它,而不是在开销和更多代码无所作为的时候使用它。
this.selected
是完全有效的,但是他要求使用正确的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
this.selected
。我同意您对jQuery过度/滥用的评论。知道jQuery的一部分是知道什么时候不使用它。也就是说,请记住':selected'
选择器是自定义的Sizzle选择器,因此使用它会禁用querySelectorAll
在受支持的浏览器中的使用。当然,这不是世界末日,因为它提供了一些不错的简短代码,但是我个人倾向于避免使用仅Sizzle的东西。
如果您不熟悉或不熟悉is()
,则可以检查的值prop("selected")
。
$('#mySelectBox option').each(function() {
if ($(this).prop("selected") == true) {
// do something
} else {
// do something
}
});
编辑:
正如@gdoron在评论中指出的那样,访问选项的选定属性的更快,最合适的方法是通过DOM选择器。这是显示此操作的小提琴更新。
if (this.selected == true) {
似乎同样有效!谢谢gdoron。
$(this).prop("selected")
代替this.selected
吗?它给你什么?ps我不是拒绝
is
最好用什么,但是我喜欢通过prop和attr访问我的属性。在大多数情况下,这可能只是口味问题。是的,有令人好奇的否决权!
jQuery
.is()
$(...).is('.foo > [name="aaa"] input') or for properties that are not native DOM elements properties like
$(this).is(':selected')
被接受。应该使用Stackoverflow来学习最佳实践,而不是常见的错误...)
您可以通过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>
用
$("#mySelectBox option:selected");
测试其是否为特定选项myoption
:
if($("#mySelectBox option:selected").text() == myoption){
//...
}
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!');
}
}
如果要通过javascript检查选中的选项
最简单的方法是在该标签中添加onchange属性并在js文件中定义一个函数,请参见示例,如果您的html文件具有类似这样的选项
<select onchange="subjects(this.value)">
<option>Select subject</option>
<option value="Computer science">Computer science</option>
<option value="Information Technolgy">Information Technolgy</option>
<option value="Electronic Engineering">Electronic Engineering</option>
<option value="Electrical Engineering">Electrical Engineering</option>
</select>
现在在js文件中添加功能
function subjects(str){
console.log(`selected option is ${str}`);
}
如果要检查php文件中的选定选项
只需在标签中给出name属性,然后访问它即可php文件的全局变量/ array($ _GET或$ _POST),请参见示例,如果您的html文件是这样的
<form action="validation.php" method="POST">
Subject:<br>
<select name="subject">
<option>Select subject</option>
<option value="Computer science">Computer science</option>
<option value="Information Technolgy">Information Technolgy</option>
<option value="Electronic Engineering">Electronic Engineering</option>
<option value="Electrical Engineering">Electrical Engineering</option>
</select><br>
</form>
在您的php文件validation.php中,您可以像这样访问
$subject = $_POST['subject'];
echo "selected option is $subject";
this.selected
),您应绕过使用jQuery($(this).prop("selected")
),但他们会为你们俩的工作。