2009-06-01 16 views
2

段落のテキストを変更するためにjQueryでシンプルに選択したと思ったことがあります。つまり、完全な伝統的な方法で動作します。すなわち、Pのinnerhtmlを変更するjqueryが機能しない

document.getElementById('message_text').innerHTML = "hello"; 

しかし、jQueryではそうではありません。私は$('#message_text')の値をチェックして、項目が表示されていることを確認しました。

$('#message_text').innerHTML = "hello"; 

私は何か間違っていますか?

誰もが考えている?

答えて

18

あなたはそこに通常のDOMオブジェクトはありませんが、あなたがしたい場合はjQueryのは(この場合には、それが唯一の要素があると思いにもかかわらず。)ラップセット持っているもの$('#message_text')ような何かをするとき

html()

jQueryのは、あなたがやりたいことには、2つの機能を持っているよう

$('#message_text')[0].innerHTML = 'whatever'; 
$('#message_text').get(0).innerHTML = 'whatever'; 

しかし、これはこの場合には必要ありません。特定のDOMプロパティにアクセスし、あなたはこれを行うことができます

$('#message_text').html('whatever'); 

text()

$('#message_text').text('whatever'); 

は、2つの違いはtext()は、あなたがそれに渡す任意のHTMLタグをエスケープする一方html()はHTMLを許可するということです。必要なものを、innerHTMLでHTMLを手動で操作する上で使用します。

+2

あなたのニースは完全な説明をするために、あなたの方が優れているため、わかりやすく説明していない回答を削除しました。 –

+1

詳細な説明をありがとう.. –

5

$('#message_text').html('hello')

jQueryのセレクタは、配列ではなく、DOM要素ノードを返します。

6

jQueryの機能$()getElementById()のようなオブジェクトがないのHTMLElementしかしjQueryのオブジェクトを返していません。そして、そこにはinnerHTMLと同等の方法としてhtml()メソッドがあります。だから、:

$('#message_text').html('hello'); 
関連する問題