jQuery获取动态呈现下拉列表的选项

时间:2015-12-16 08:58:44

标签: javascript jquery forms

我正在开发一个MVC + jQuery项目,我在运行时创建下拉列表。在通过jQuery提交表单的同时渲染后,我试图获得选定的值。下拉呈现并正常工作

enter image description here

我也可以查看源代码。我想通过

获得下拉列表
 $('#Monday_Periods').children('.PeriodRow').each(function () {

    var elements = $(this).html();
    var found = $('.Subject', elements);           

});

我在变量found中找到了所有对象,我可以在Chrome调试中看到它

enter image description here

但在此之后我无法获得选定的价值。正如您在调试模式中看到的那样,没有选择任何选项。我试图通过valtext但没有运气。任何人都可以告诉我如何获得选定值

1 个答案:

答案 0 :(得分:1)

$(this).html();正在丢失对DOM的引用(html()返回一个String,而不是一个DOM节点。)

尝试修改:

var elements = $(this);
var found = $('.Subject', elements);
found.each(function(el){
   console.log($(this).val());
}           

或直接使用(你已经有了一个id!):

$('#subject1').val(); 

编辑:SNIPPET ADDED



function printResults(){
  $('#Monday_Periods').children('.PeriodRow').each(function () {

      var elements = $(this);
      var found = $('.Subject', elements);
      found.each(function(el){
         console.log($(this).val());
      });           
    
  });
}

$('#print-results').click(printResults);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<form id="Monday_Periods">
  <div class="PeriodRow">
    <select class="Subject">
      <option value="none">-- Select Subject --</option>
      <option value="1">Biology</option>
      <option value="2">Physics</option>
    </select>
    
    <select class="Subject">
      <option value="none">-- Select Subject --</option>
      <option value="1">Biology</option>
      <option value="2">Physics</option>
    </select>

  </div>
  <button type="button" id="print-results">PRINT RESULTS</button> 
</form>
&#13;
&#13;
&#13;