使用AJAX调用XML </select>附加<select>

时间:2012-03-02 17:26:38

标签: jquery html xml ajax

在动态创建<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>

2 个答案:

答案 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选择器)