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);
});