對於頁面中的html片段:
<div id="dem"><span>單號:</span>RC-12345854635</div>
使用jQuery獲取div的文本節點:
var str = $("#dem").text();
得到的內容--> str = 單號:RC-12345854635,即取得了div節點的全部文本內容。
要想獲得div主節點的文本,而不去子節點(span)的文本,可使用如下方法:
var text = $("#dem").contents().filter(function() { return this.nodeType === 3; }).text();
其中,方法contents()的作用是查找匹配元素內部所有的子節點(包括文本節點);在這里就是取得id為dem的div下所有子節點。
而filter()的作用是過濾結果集,目的只有一個,使被過濾的結果集中,滿足參數條件的節點保留下來,這里傳入的參數為函數;反之不滿足的節點全部移除。
nodeType 屬性返回以數字值返回指定節點的節點類型。
如果節點是元素節點,則 nodeType 屬性將返回 1。
如果節點是屬性節點,則 nodeType 屬性將返回 2。
如果節點是文本節點,則 nodeType 屬性將返回 3。
同樣的,也可以獲取div下span子節點的文本信息,方法如下:
var text = $("#dem > span").first().contents().filter(function() { return this.nodeType === 3; }).text();