2010-08-15 71 views
0

我有以下代码,它加载一个xml文件以填充下拉列表。我想将选定的选项文本放入一个变量中。我已经获得了选择的价值,但不是文字。获取所选文本并将其放入变量

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<link rel="stylesheet" type="text/css" media="all" href="style.css" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $.ajax({ 
    type: "GET", 
    url: "make10.xml", 
    dataType: "xml", 
    success: function(xml) { 
    var select = $('#mySelect'); 

var optionsHtml = new Array(); 
$('make', xml).each(function(){ 
       var value = $(this).attr('value'); 
       var label = $(this).text(); 
optionsHtml.push("<option class='ddindent' value='"+ value +"'>"+label+"</option>"); 

    }); 
    optionsHtml = optionsHtml.join(''); 
select.append(optionsHtml); 

select.children(":first").text("Select Make").attr("selected",true); 

} 
}); 

$('#mySelect').change(function() { 
var val=$(this).val(); 
alert(val); 
}); 


}); 
</script> 
</head> 
<body> 
<div id="page-wrap"> 
<select id="mySelect"> 
<option>loading</option> 
</select> 
</div> 
</body> 
</html> 

回答

2

获取所选<option>文本你可以使用:selected.text(),像这样:

$("#mySelect :selected").text(); 

(注的空间,这是一个孩子所以这很重要)

或者,您目前.change()处理器里面应该是这样的:

$(this).children(":selected").text(); 
+0

再次感谢尼克!我有类似第二个代码但忘记了.children – user357034 2010-08-15 13:08:22

1

var selectedOptionValue = $('#mySelect:selected').val();
var selectedOptionText = $('#mySelect:selected').html();

+1

这将不会返回任何...的''