在动态创建<select>
标记然后使用XML值填充它们时遇到问题。
jQuery在<div>
附加一个select,然后从XML数据中添加<option>
个标记。
我的第一次XML / AJAX尝试。做了一些广泛的阅读,但一直在做空。
以下是我的代码示例:
<html>
<head>
<script src="jquery.js" type="text/javascript"></script>
<script>
function addSelect() {
$("#myDiv").append(function(){
$.ajax({
type: "GET",
url: "test.xml"
dataType: "xml",
success: function(xml) {
$("#myDiv").append("<select id='mySelect'>");
$(this).find('value').each(function(){
var value = $(this).text();
$("#mySelect".append("<option class='ddindent' value='" + value + "'>" + value + "</option>");
});
$("#myDiv").append("</select>");
}
});
});
}
</script>
</head>
<body>
<div id="myDiv"></div>
<a href="#" onClick="addSelect();">Add Select</a>
</body>
</html>
答案 0 :(得分:1)
使用您的代码,您不会从xml
读取数据。将$(this)
更改为$(xml)
:
$(xml).find('value').each(function(){
var value = $(this).text();
$("#mySelect").append("<option class='ddindent' value='" + value + "'>" + value + "</option>");
});
修改:还在MMM指出时将mySelect
更改为#mySelect
,并修复了语法错误(您尚未关闭mySelect
左右的括号。
修改:您的代码中还有其他一些奇怪的东西。我在下面修了它们:
function addSelect() {
$.ajax({
type: "GET",
url: "test.xml",
dataType: "xml",
success: function(xml) {
$("#myDiv").append("<select id='mySelect'>");
$(xml).find('value').each(function(){
var value = $(this).text();
$("#mySelect").append("<option class='ddindent' value='" + value + "'>" + value + "</option>");
});
$("#myDiv").append("</select>");
}
});
}
答案 1 :(得分:0)
更改
$("mySelect".append("<option class='ddindent' value='" + value + "'>" + value + "</option>");
到
$("#mySelect").append("<option class='ddindent' value='" + value + "'>" + value + "</option>");
(添加了id选择器)