Это даст правильное корневое / текстовое значение. Текст может быть размещен повсюду в корневом узле.
<script type="text/javascript">
$().ready(function() {
var xml = $('#xml').find('root').contents().each(function(i){
if (this.nodeName=="#text" && this.nodeType=="3" && this.nodeValue.length>2) alert(this.nodeValue);
});
});<br>
</script>
для:
<div id="xml"><root><item1>text1</item1><item2>text2</item2>more text here</root></div>
Примечание: «встроенный» xml не работает в Internet Explorer, но если в примере заменить root и itemX действительными именами Html, он также будет работать.
Объяснение: DOM рассматривает пустые и текстовые узлы как элементы. если вы отладите вышеприведенный .each (), вы увидите следующее:
alert( this.nodeName + '|' + this.nodeType + "|" + this.nodeValue);
#text|3| , ITEM1|1|null , #text|3| , ITEM2|1|null , #text|3| more text here
(К сожалению, форматирование не работает с венгерской клавиатурой, все же)