2010-06-22 44 views
0

我有這樣的代碼,在裝載了mouseenter XML文件,這些文件在Firefox工作:

$(document).ready(function() { 
     $('.invest-port-thumb a').mouseenter(function() { 

       $.get(this.href, function(response){ 

       var cName = $(response).find("fragment cName"); 
       var cind = $(response).find("fragment cName").attr("cind"); 

       $('#slider-name .slider-copy').html(cName); 
       $('#slider-indu .slider-copy').html(cind); 
       }); 


     }); 
}); 

,當然它不能在IE瀏覽器正常工作。事實上,沒有任何負載。

示例XML文檔:

<fragment> 
    <cName cind="Industrial" stat="Active">ABC Company</cName> 
    <hq>Chicago, IL</hq> 
</fragment> 

我發現了一些奇怪的事情,當我刪除此行:

var cName = $(response).find("fragment cName");

它工作正常。出於某種原因,我可以獲得XML節點的屬性,但不是實際的節點?任何幫助,將不勝感激...

+0

嘗試使用$ .ajax而不是$ .get並將dataType更改爲xml – 2010-06-22 16:50:49

回答

1

你所確定的行:

var cName = $(response).find("fragment cName"); 

jQuery對象賦值給變量cName,而不是它的文本內容,它看起來像你想要的。嘗試更改爲

var cName = $(response).find("fragment cName").text(); 
+0

Genious。這工作。謝謝! – 2010-06-22 17:08:40

1

jQuery should not be used to parse XML

而應該指定XmlHttpRequestdataType來告訴瀏覽器解析XML,在回調後添加, 'xml'
response將成爲一個XML DOM樹,您可以使用jQuery進行遍歷。

例如:

$.get(this.href, function(response){ 

    var cName = $(response).find("fragment cName"); 
    //... 
    }, "xml"); 
+0

我試過這個解決方案;它似乎沒有工作.. – 2010-06-22 16:55:38

+0

爲什麼不呢?發生了什麼? 'response'的價值是什麼? – SLaks 2010-06-22 17:03:50