DOM操作中TextNode惹的麻煩

2021-08-25 00:14:28 字數 814 閱讀 1914

在dom遍歷中,ie會忽略空白文字節點,但是firefox、chrome等現代瀏覽器會把空白文字節點識別為textnode,在訪問諸如[b]childnodes、firstchild、lastchild、nextsibling、previoussibling[/b]等節點時,可能會遇到textnode。

解決方法大致有2種:

[list]

[*]以nodetype過濾(一般過濾掉nodetype等於3的文字節點即可);

[*]以tagname過濾(文字節點的tagname不存在);

[/list]

例如獲取nextsibling:

//nodetype

function getnextsibling(node)

return nextsibling;

}//tagname

function getnextsibling(node)

return nextsibling;

}

不知道還有沒有其它好方法?

補充一下,dom.children(不含空白孩子節點)方法雖然不是w3c標準,但是實際上各個瀏覽器基本都支援,也算事實標準了。

更新:最新的瀏覽器支援以下dom標準,去除空白節點、文字節點:

childelementcount

children

lastelementchild

nextelementsibling

previouselementsibling

[url]

不過ie只支援children。

jQuery中的DOM操作

三 jquery中的dom操作 3.2.1 查詢節點 1.查詢元素節點 var li ul li eq 1 獲取裡第2個節點 var li text li.text 獲取第二個元素節點的文字內容 2.查詢屬性節點 var para p 獲取節點 var p text para.attr title ...

angular 中的 DOM 操作

在angular中使用第三方外掛程式時最好都封裝到指令 directives 中去,dom操作也最好都解構到指令中。避免使用 jquery 來操作 dom,包括增加元素節點,移除元素節點,獲取元素內容,隱藏或顯示元素。你應該使用 directives 來實現這些動作,有必要的話你還要編寫自己的 di...

jQuery中的DOM操作

jquery中的dom操作 dom分為3個部分,dom core html dom,css dom 1,查詢節點 查詢元素節點可以用 選擇器,find 和children 方法。查詢屬性節點可以用attr 方法,也可以用 的屬性過濾選擇器 eg div tittle 2,建立節點 3,插入節點 3....