2009-09-28 75 views
3

我試圖改造一個頁面來讀取XML而不是DOM,並且我不想使用$(xml).find('blah')進行每次調用,而且我想知道是否有一個在xml指向jQuery的方法,而不是DOM。我可以讓jQuery指向XML文檔而不是DOM嗎?

舉例來說,我希望能夠瀏覽我的XHTML與jQuery的方法,例如: $(「嗒嗒」)無論

這是可能的?

回答

2

不,您不能重定向全局document對象以指向您創建的任意DOM文檔。

的jQuery提供給您的context argument$()功能出於這樣的目的,所以你應該使用:

$('blah', xmlDoc).whatever() 

或者你可以將其存儲在一個變種,以減少重複,如果你喜歡,和遍歷向下從那裏:

var $xml = $(xmlDoc); 
$xml.find('blah').foo(); 
$xml.find('bloh').bar(); 
+0

使用這種方法,有沒有什麼辦法可以動態修改XML文檔? $('blah',xmlDoc)可以工作,但是像$('blah',xmlDoc).removeClass('hidden')似乎不起作用。 – 2009-09-28 20:42:04

2

這是一個有點狡猾,但是你可以重寫$功能:

var old$ = $; 
var xml = ...; 

$ = function(arg) 
{ 
    return old$(arg, xml); 
} 

我認爲應該工作...也許...

+0

你有沒有想過在盒子外面:)好的。 – 2009-09-28 20:40:53

1

如果你使用像jQuery.ajax()或jQuery.get()方法可以從另一頁面的DOM,只是改變/將返回類型從「json」設置爲「xml」。

http://docs.jquery.com/Ajax/jQuery.ajax#options(向下滾動到「數據類型」)

相關問題