2011-12-22 12 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)は、すべての*テキストノード子孫、再帰的に。この質問とトップの答えは私のためにそれを解決しました。 –

答えて

8

jQueryのは、テキストノードを直接操作するために多くを与えるものではありませんので、あなたはこのようにそれを行うことができます:

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

[0]はjQueryオブジェクトから最初のDOM要素を取得し、ネイティブfirstChildプロパティを使用していますテキストノードを取得します。

ノードのテキストコンテンツを取得するには、.dataまたは.nodeValueを追加します。

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

代替の方法は、jQueryのテキストノードではあまり役立ちません...

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

+1 - nice - again –

+0

@AdamRackis ... :) –

1

だろう。あなたはこのJavaScriptで「17.00」のテキストを取得することができます:

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

あなたは本当に(私の知る理由はありませんが)のjQueryを使用したい場合は、あなたがこれを行うことができます:

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

あなたはそれがここで働くのを見ることができます:http://jsfiddle.net/jfriend00/EAwCB/

関連する問題