抱歉标题含糊。这是我想做的一个例子。
<book>
The Lord of the Rings
<author>JRR Tolkien</author>
</book>
$xml.find("book").each(function()
{
$(this).text();
});
$(this).text(); 不仅返回“指环王”,还返回......以及里面的任何其他节点。我正在寻找一种一致的方式来只返回“指环王”或我在那里的任何信息。
您需要使用contents()
获取所有节点,然后.filter()
删除任何不是文本节点的节点:
$xml.find("book").contents().filter(function() {
return this.nodeType == Node.TEXT_NODE;
}).each(function() {
// $(this).text();
});
如果代码也需要在 IE7 中运行,则必须替换Node.TEXT_NODE
为3
.
可能该文本将始终在标记之前,因此您也可以获取内容的第一个节点
$(xml).find('book').each(function(){
var text=$(this).contents().eq(0).text();
});
演示:http: //jsfiddle.net/nS5bj/