2010-05-04 37 views
1

任何人都可以帮助使用Ajax在页面加载时拉取XML文件的jQuery代码片段吗?jQuery和AJAX

有做它没有的jQuery这里的真正笨拙的方法:

<script type="text/javascript"> 
function loadXMLDoc() 
{ 
    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange = function() 
    { 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
    { 
     xmlDoc = xmlhttp.responseXML; 
     var txt = ""; 
     x = mlDoc.getElementsByTagName("title"); 
     for (i=0;i<x.length;i++) 
     { 
     txt = txt + x[i].childNodes[0].nodeValue + "<br />"; 
     } 
    document.getElementById("checkedIn").innerHTML=txt; 
    } 
    } 
    xmlhttp.open("GET", "data.xml", true); 
    xmlhttp.send(); 
} 
</script> 

理想的情况下,而在有点击生成列表它会做这样的页面加载,显示从XML中的字段(标题,作者,并且无论是在检查或不)

会拥抱你的解决方案

回答

5
$(function() { 
$.ajax({ 
    url: 'ajax.xml', 
    type: 'GET', 
    dataType: 'xml', 
    success: function(response) { 
     var books = $(response).find('book'); 
     var list = $('#booklist'); 
     $(books).each(function() { 
      var checkedOut = ($(this).attr('checked-out') == '1'); 
      var title = $(this).find('title'); 
      var li = $('<li></li>'); 
      if(checkedOut) { 
       li.addClass('selected'); 
      } 
      li.html(title); 
      list.append(li); 
     }); 
    } 
}); 
}); 
+0

我也会包含错误函数以防万一。 – 2010-05-04 17:27:58

+0

谢谢,通过jQuery网站询问后不久就发现了这一点......非常有意义。但是我对JS实际上不够熟悉,无法写出我的成功功能。我怎样才能将XML文件中产生的所有显示为名为#booklist的ul中的li,然后检查来自XML的是否具有签入=“0”或1,并在他们的li上给予他们不同的类? – 2010-05-04 17:39:39

+0

@Banderdash,你的XML是什么样的? – 2010-05-04 17:43:05

1

你为什么不使用jquery简单的Ajax请求?

$(document).ready(function() { 
    $.ajax({ 
     url: "file.xml", 
     dataType: "xml", 
     success: function() { 
      // on success here 
     } 
    }); 
}); 
+0

我还包括万一误差函数。 – 2010-05-04 17:29:22