javascript
  • jquery
  • xml
  • 2012-10-18 14 views 0 likes 
    0

    後,我寫了這個簡單的jQuery代碼,找到一些XML代碼的屬性:無法獲得ATTR parseXml

    <html> 
    <head> 
    <meta charset='utf-8' /> 
    <script type="text/javascript" src="js/jquery.min.js"></script> 
    </head> 
    <body> 
    <script> 
    var msg = '<utility value="346" cost="0" />'; 
    alert(msg); 
    var xmlInput = $.parseXML(msg); 
    alert(xmlInput); 
    var xmlObject = $(xmlInput); 
    alert(xmlObject); 
    var tagname = xmlObject.nodeName; 
    alert("tagname="+tagname); 
    var value = xmlObject.attr("value"); 
    alert("value="+tagname); 
    </script> 
    </body></html> 
    

    但是,這是行不通的: http://irsrv2.cs.biu.ac.il:8080/GeniusWeb/jqueryTest3.html

    標籤名稱和值是「未定義」,我檢查了Firefox和Chrome。

    我該如何解決這個問題?

    回答

    1

    您應該搜索xmlObject中的某個元素,因爲XML是從根元素開始的。

    var tagname = xmlInput.firstChild.nodeName; 
    // or xmlObject.children().get(0).nodeName 
    
    var value = $("utility", xmlObject).attr("value"); 
    
    1

    兩個問題。首先,你的發佈代碼的最後alertalert("value="+tagname);`,這在任何情況下都不會給你想要的。其次,您需要從解析的XML jQuery集中檢索元素:

    var msg = '<utility value="346" cost="0" />'; 
    alert(msg); 
    var xmlInput = $.parseXML(msg); 
    alert(xmlInput); 
    var xmlObject = $(xmlInput); 
    alert(xmlObject); 
    var utility = xmlObject.find("utility"); 
    alert("utility="+utility); 
    var value = utility.attr("value"); 
    alert("value="+value);​ 
    
    相關問題