firefox下的parentNode

2009-05-02 1:35 am
請問為何在FF下,以下碼會失敗?
xxx.parentNode.innerHTML

有正確取得parentNode.innerHTML的方法嗎?
更新1:

javascript

更新2:

var re = window.editor.getSelection(); var r = re.getRangeAt(0); var ert = re; var str = ert.toString(); var range= ert.getRangeAt(0);

更新3:

var clonedSelection = range.cloneContents(); var div = document.createElement('div'); div.appendChild(clonedSelection); var stre = div.innerHTML; alert(div.innerHTML+'\n'+div.parentNode.innerHTML);

更新4:

因為字數限制關係,所以分開了2段

更新5:

在FF下 ... 這些不會當是div的parentNode的嗎?

更新6:

唔好意思呀- -" yahoo食左我d字 應該係咁: 在FF下 < body >,< head >... 這些不會當是div的parentNode的嗎?

更新7:

在其他瀏覽器下,就算沒有設定parentnode, div.parentNode.innerHTML仍然能夠獲取,這跟FF很不同 i mean... < body > < b >123< /b > < / body > 當我獲取< b >的parentnode時,其他瀏覽器會獲得< body >,但在FF下則為null 謝謝你的解答!

回答 (2)

2009-05-02 6:15 pm
✔ 最佳答案
依您的 code ,您的 div 根本就是沒有 parentNode 呀!
即是說 div.parentNode 是 null ,所以 div.parentNode.innerHTML 就有錯誤啦!
看看
https://developer.mozilla.org/En/DOM/Node.appendChild
https://developer.mozilla.org/En/DOM/Node.parentNode


2009-05-03 12:25:08 補充:
可能您不明白 appendChild() 的用法。要 element_x 下有 div 會用:
element_x.appendChild(div);
而您的 code 中沒有任何 element appendChild div 啊!

2009-05-03 15:32:35 補充:
看來,您對 DOM 的觀念不正確。
一個 DOM element 的 parentNode 不可能是有兩個值。
您的 code 的 div 是沒有 parentNode 的。您的 div.parentNode 就是 null 。要留意新 create 出來的 element 要加入一個 document 的 DOM 中才能成為 DOM 的一部份。您還是參考我提供的連結吧!
2009-05-02 1:54 am
要看程式碼才知錯處在那。


收錄日期: 2021-04-25 00:10:54
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20090501000051KK01327

檢視 Wayback Machine 備份