-1

嗨,我有 for 循环,它迭代并设置多个下拉列表我想迭代每个下拉列表并在该页面中打印选定的值
这是我的代码

<select  name="occupation" id="myselect">
                    <option>Choose One</option>
                     <%if (list != null
                                        && list.size() > 0) {
                        for (Map.Entry<String,String> entry : list.entrySet()) {                            
                                        if(!entry.getValue().equals(user1.getName())){%>
                      <option id="<%=user.getid()%>" value="<%=entry.getKey()%>"><%=entry.getValue()%></option>

                      <%}}}%> 
                    </select>

jQuery:

$('#myselect').change(function(){
        var id=$('#myselect option:selected').attr('id');
        var text=$('#myselect option:selected').text();
        alert(id);
        alert(text);
4

2 回答 2

2

利用each()

 $('#myselect').change(function(){
   $('#myselect option:selected').each(function(){
        alert(this.value);
        alert($(this).attr('id'));
        alert($(this).text());
   });
  });

评论后。。

如果您有多个下拉列表..那么您必须更改您的 id..因为 id 应该始终是唯一的...将其更改为 class 并使用 class selector

  $('.myselect').change(function(){
   $(this).find('option:selected').each(function(){
        alert(this.value);
        alert($(this).attr('id'));
        alert($(this).text());
   });
  });
于 2013-07-23T07:13:47.110 回答
0

您需要选择 $("select option:selected") 选择器:

$(document).ready(function(){
  $("select option:selected").each(function(i, obj){
    alert($(this).html());
   });
});
于 2013-07-23T07:20:15.170 回答