2010-05-04 51 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