首頁>Program>source

在jQuery示例頁面的Ajax上看到了以下示例:

var xmlDocument = [create xml document];
$.ajax({
        url: "page.php",
        processData: false,
        data: xmlDocument,
        success: someFunction
    });

我该如何選擇像這樣的字元串:

var t = '<foo><bar>something</bar></foo>'; 

並將其轉換為XML DOM物件? 跨瀏覽器?

UPDATE : 請參阅對karim79答案的註釋。

最新回復
  • 5月前
    1 #

    將其包裝在jQuery物件中.然後在其上使用jQuery的常規DOM操作方法。

    var t = $('<foo><bar>something</bar></foo>');
    //loop over 'bar' nodes
    t.find('bar').each(function () {
        alert($(this).text());
    });
    

    如果您想將其轉換迴纯字元串(例如,在對其进行修改後),您可以這樣做:

    //then convert it back to a string
    //for IE 
    if (window.ActiveXObject) {
        var str = t.xml;
        alert(str);
     }
    // code for Mozilla, Firefox, Opera, etc.
    else {
       var str = (new XMLSerializer()).serializeToString(t);
       alert(str);
    }
    

    編輯:$。ajax手册說(在processData選項上):

    By default, data passed in to the data option as an object (technically, anything other than a string) will be processed and transformed into a query string, fitting to the default content-type "application/x-www-form-urlencoded". If you want to send DOMDocuments, or other non-processed data, set this option to false.

    因此,如果要將jQuery物件傳遞到服務器,則需要將其設置為 true ,或完全省略(將其設置為 true 預設).希望對您有所帮助。

  • 5月前
    2 #

    請立即致電find-如果它是頂層元素,則需要使用filter。

    var t = $('<foo><bar>something</bar></foo>');
    //loop over 'foo' nodes
    t.filter('foo').each(function () {
      alert($(this).find('bar').text());
    });
    

  • 5月前
    3 #

    您可以在不使用jQuery的情况下进行轉換.這取自Mozilla的DOMParser文件:

    // Create a DOMParser
    var parser = new DOMParser();
    // Use it to turn your xmlString into an XMLDocument
    var xmlDoc = parser.parseFromString(xmlString, "application/xml");
    

  • 5月前
    4 #

    您可以使用此簡單代碼將xml標記轉換為文字

    var temp_var = $("<p/>").append($(your_xml_data)).htML()
    

  • 5月前
    5 #

    坚如磐石的代碼.在所有瀏覽器中都能完美執行.

    var xmlFields = $("<root><reports name='report 1'><item 
                   field='ord_num' desc='Order    Number'/></reports></root>");
    alert(xmlFields[0].outerHTML);
    

  • Lambda Java參考
  • javascript:在文字區域或文字輸入中多色文字突出顯示