MozTW 討論區
https://forum.moztw.org/

抓取DOM節點的問題
https://forum.moztw.org/viewtopic.php?f=13&t=17542
1 頁 (共 1 頁)

發表人:  legnaleurc [ 2007-02-05, 14:39 ]
文章主題 :  抓取DOM節點的問題

我在要抓某節點的屬性值時,使用了:
x = http_request.responseXML.getElementsByTagName("z:row")[i].getAttribute("posX");

x = http_request.responseXML.getElementsByTagName("z:row").item(0).getAttribute("posX");

但是都只有IE能正常作用
請問標準的做法是....?

edit:
出現的錯誤是,
http_request.responseXML.getElementsByTagName("z:row").item(0) has no properties

發表人:  風痕影 [ 2007-02-05, 20:05 ]
文章主題 : 

剛才在 Mozilla Developer Center 找到這個:

AJAX:上手篇

發表人:  linrob2 [ 2007-02-05, 20:20 ]
文章主題 : 

"z:row" 可以當XML的標籤名稱嗎?印象中..不行吧
因為我自己用一樣的寫法去測可以在FireFox上面跑
感覺問題是出在這裡

發表人:  風痕影 [ 2007-02-05, 21:23 ]
文章主題 : 

linrob2 寫:
"z:row" 可以當XML的標籤名稱嗎?印象中..不行吧
因為我自己用一樣的寫法去測可以在FireFox上面跑
感覺問題是出在這裡

剛才查了一下 W3C ... 找到這個:Names and Tokens
如果我沒誤解的話,冒號應該是可以的 ^^?

發表人:  legnaleurc [ 2007-02-05, 21:25 ]
文章主題 : 

風痕影 寫:
剛才在 Mozilla Developer Center 找到這個:

AJAX:上手篇


是的,我就是參考這篇
您可以發現我連變數名稱也沒改XD

linrob2 寫:
"z:row" 可以當XML的標籤名稱嗎?印象中..不行吧
因為我自己用一樣的寫法去測可以在FireFox上面跑
感覺問題是出在這裡


不過,用asp寫入的XML就是用z:row當tag的名稱啊
而且也沒有id或是class屬性
所以說問題是出在我用的Element不對,而不是陣列的使用法囉?

發表人:  LGZenith [ 2007-02-05, 21:47 ]
文章主題 : 

legnaleurc 寫:
風痕影 寫:
剛才在 Mozilla Developer Center 找到這個:

AJAX:上手篇


是的,我就是參考這篇
您可以發現我連變數名稱也沒改XD

linrob2 寫:
"z:row" 可以當XML的標籤名稱嗎?印象中..不行吧
因為我自己用一樣的寫法去測可以在FireFox上面跑
感覺問題是出在這裡


不過,用asp寫入的XML就是用z:row當tag的名稱啊
而且也沒有id或是class屬性
所以說問題是出在我用的Element不對,而不是陣列的使用法囉?

可是我自己隨便弄了一個XML檔案,用z:row當tag名稱
驗證是失敗的...
我先研究一下上面那篇文章看看

不會用ASP....
不過用":"應該是沒問題
用來宣告namespace的,而且在IE上可以跑...理論上應該沒問題
可能是其他的問題吧

發表人:  風痕影 [ 2007-02-05, 21:49 ]
文章主題 : 

legnaleurc 寫:
是的,我就是參考這篇
您可以發現我連變數名稱也沒改XD

我那時候找這篇時一直心生疑惑
納悶說,明明寫得一樣怎麼會出錯 XD

發表人:  Milx [ 2007-02-05, 21:53 ]
文章主題 : 

legnaleurc 寫:
我在要抓某節點的屬性值時,使用了:
x = http_request.responseXML.getElementsByTagName("z:row")[i].getAttribute("posX");

x = http_request.responseXML.getElementsByTagName("z:row").item(0).getAttribute("posX");

但是都只有IE能正常作用
請問標準的做法是....?

edit:
出現的錯誤是,
http_request.responseXML.getElementsByTagName("z:row").item(0) has no properties


用getElementsByTagNameNS試試看吧

發表人:  kourge [ 2007-02-05, 21:54 ]
文章主題 : 

z 是 XML namespace,所以應該用 getElementsByTagNameNS() 才對...
你的 z 的 xmlns 是啥?

另外...附加兩個忠心建議:
1. 用 XHR 少用一點 XML 比較好,不然很痛苦,如果可以的話盡量用 JSON
2. 請用一個 JS 函式庫,如 Prototype、jQuery、或 mootools

發表人:  legnaleurc [ 2007-02-05, 21:56 ]
文章主題 : 

edit:

改用了NameSpace以後,FX和Opera能正常顯示了
不過這次換IE不能作用= =

要兩全其美的話,是否要先判斷使用者的瀏覽器類型再做呢?

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/