2011-12-22 66 views
2

可能重复:
How do I select text nodes with jQuery?如何使用jQuery选择DOM中的文本节点?

我有以下HTML:

<div id="main">17.00<span>%</span></div> 

我想选择17.00部分,但是当我用$('#id:first-child').html();它不工作。我怎样才能选择它?

+0

不会说这是重复的。这个问题:获得一个明确指定的文本节点,显式*排除*邻居节点的文本内容。链接[如何选择文本节点与jQuery?](http://stackoverflow.com/questions/298750/how-do-i-select-text-nodes-with-jquery)要求*所有*文本节点后代,递归。这个问题和最重要的答案为我解决了它。 – 2013-12-12 18:37:06

回答

8

jQuery的不给多少直接与文本节点的工作,所以你可以做这样的:

$('#main')[0].firstChild 

[0]从jQuery对象获得的第一个DOM元素,并使用原生firstChild财产获取文本节点。

要获取节点的文本内容,请添加.data.nodeValue

$('#main')[0].firstChild.data;  // 17.00 
$('#main')[0].firstChild.nodeValue; // 17.00 

的另一种方法是...

$('#main')[0].childNodes[0] 
+1

+1 - 不错 - 再次 – 2011-12-22 02:15:53

+0

@AdamRackis ... :) – 2011-12-22 02:18:36

1

jQuery的没有太大的帮助与文本节点。你可以用这个JavaScript的“17.00”文本:

var text = document.getElementById("main").firstChild.nodeValue; 

如果你真的想使用jQuery(虽然没有任何理由,我所知道的),你可以这样做:

var text = $("#main").get(0).firstChild.nodeValue; 

你可以看到它在这里工作:http://jsfiddle.net/jfriend00/EAwCB/

相关问题