Jquery 显示所选项目文本不为“的下拉列表数”;选择答案";
请帮我解决这个问题Jquery 显示所选项目文本不为“的下拉列表数”;选择答案";,jquery,Jquery,请帮我解决这个问题 我想显示所选项目文本不是“选择答案”的下拉列表数。 下面是我的HTML代码 <table> <tr> <td> <select id="S1" class="dropdown"> <option value="" selected="selected">Select answer</option>
我想显示所选项目文本不是“选择答案”的下拉列表数。
下面是我的HTML代码
<table>
<tr>
<td>
<select id="S1" class="dropdown">
<option value="" selected="selected">Select answer</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</td>
<td>
<select id="S1" class="dropdown">
<option value="" selected="selected">Select answer</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</td>
</tr>
<table>
但它不工作,我的代码似乎有问题。请有人帮助我。试试这个:
var count = $(this).parents('TR').find('select').filter(function() {
return $(this).find("option:selected").text() == "Select answer";
}).length;
alert(count);
修复您的HTML,使所选内容具有唯一ID:
<table>
<tr>
<td>
<select id="S1" class="dropdown">
<option value="" selected="selected">Select answer</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</td>
<td>
<select id="S2" class="dropdown">
<option value="" selected="selected">Foobar</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</td>
<td>
<select id="S3" class="dropdown">
<option value="" selected="selected">Select answer</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</td>
</tr>
<table>
将向S1、S3发出警报,这应该可以工作:
$('select').change(function()
{
var count = 0;
$("select").each(function() {
if (!$(this).val()){
count++;
}
});
alert(count);
});
尝试:
您还有两个相同的ID。与的稍有不同:
我个人喜欢检查所选选项的缺失值,而不是选项的显示文本——但这可能就是我。如果第一个选项的值始终是
”
,则可以使用$(“选择[value=''”)。长度
。如果没有,Dogbert提供的答案应该有效。
$(function(){
alert($('select').map(function(){
if($(this).find(':selected').html() == 'Select answer')
{
return $(this).attr('id');
}
}).get().join(','));
});
$('select').change(function()
{
var count = 0;
$("select").each(function() {
if (!$(this).val()){
count++;
}
});
alert(count);
});
$('select').change(function(){
var $selects = $(this).closest('tr').find('select');
var answered = $selects.find('option:selected').filter(function(i){
return ($(this).val() != '' ? this : null);
}).length;
alert(answered);
});