如果元素區間只放有文字,而沒有包含其它的標籤元素,則其包含單一的 text 子物件。如果子物件是多個文字物件,可以用 normalize()將相鄰的多個文字物件整合成一個文字物件。
- 程式用法:
<div id='txt'>
好玩遊戲,射擊遊戲,益智遊戲,小遊戲,線上遊戲。
</div><p>
<script type='text/javascript'>
var tx=document.getElementById('txt').firstChild;
//for( k in tx )
// document.write( k +' : '+ tx[k] +'<br />');
document.write( tx
+'<br />'+ tx.childNodes.length
+'<br />'+ tx.nodeName
+'<br />'+ tx.nodeValue );
</script> - 執行結果:好玩遊戲,射擊遊戲,益智遊戲,小遊戲,線上遊戲。
[object Text]
0
#text
好玩遊戲,射擊遊戲,益智遊戲,小遊戲,線上遊戲。
無瀏覽器支援。
無瀏覽器支援。
無瀏覽器支援。
- 程式用法:
<script type='text/javascript'>
var tx=document.getElementById('txt').firstChild;
document.write( tx.isElementContentWhitespace
+'<br />'+ tx.wholeText
+'<br />'+ tx.replaceWholeText );
</script> - 執行結果:
undefined
好玩遊戲,射擊遊戲,益智遊戲,小遊戲,線上遊戲。
undefined
將一個文字結在指定的位址切成成兩個文字結:原文字結包含第一段文字,回傳第二個文字結。位址前的文字屬於第一文字結,其餘屬於第二文字結。另外也可以使用 String.split()。其語法是:
第二文字結 = 文字結.splitText( 位址 )
文字位址由 0 算起。位址超過文字長度會發生錯誤。位址等於文字長度,則第二文字結是空字串。
- 程式用法:
<span id='number'>
1234567890
</span><p>
<script type='text/javascript'>
var tx=document.getElementById('number').firstChild;
var t2=tx.splitText(2);
document.write( '(一)'+ tx.nodeValue
+'<br />(二)'+ t2.nodeValue );
</script> - 執行結果:
1234567890
(一) 1
(二)234567890
- 上例中,第(一)的輸出:IE 是 12;Firefox, Safari, Chrome 則是 1;原因是,IE 將第一個換行字元省去了。
使用中文作測試:
- 程式用法:
<span id='chs'>好玩遊戲,障礙遊戲,益智遊戲,小遊戲,網路遊戲。</span><p>
<script type='text/javascript'>
var tx=document.getElementById('chs').firstChild;
var t2=tx.splitText(3);
document.write( '(一)'+ tx.nodeValue
+'<br />(二)'+ t2.nodeValue );
</script> - 執行結果:
好玩遊戲,障礙遊戲,益智遊戲,小遊戲,網路遊戲。
(一)好玩遊
(二)戲,障礙遊戲,益智遊戲,小遊戲,網路遊戲。
- 上面的結果顯示,位址是以字為單位,而不是以位元組(byte)為單位。