2016-12-27 26 views
2

の要素にアクセスしようとしたとき、私は私が持っている場合、フォームは(textareaを言うことができます)ことがわかり、そして私がh1を持っている場合textその中、私が代わりに$("textarea").val();.inner()と.innerHTMLはいつ使用しますか? jQueryので

を使用する必要があります取得したいです要素、私は使用する必要があります$("h")[0].innerHTML;

これはなぜですか? h1.val()/textarea.innerHTML do not work

+2

のみフォームのコントロール要素は他の要素のほとんどは 'innerHTML'を持って、[値]プロパティを持っています。 'innerHTML'のjQueryバージョンは' $( "h1").html() 'です。 – Teemu

答えて

5

.val()は、jQueryの入力要素の値を取得/置換するために使用され、JSの代替は.valueです。

innerHTMLまたはjQueryの.html()は、入力要素ではなく、要素内のマークアップ全体を取得/置換するために使用されます。

text()ほぼ同じようJS innertHTML使用されているが、唯一それを取得/、いないすべてのタグなどそれはbassically innerText

参考リンクについてJSの同等だ要素内のテキストを置き換えinnerHTMLinnerTextval()text()html()

0

あなたは使用することができh1.text()またはそれぞれinnerTextinnerHTMLにマップh1.html()

val()input.valueに対応しています。

jqueryに相当するものを使用すると、クロスブラウザとの互換性が得られますが、それはおそらく歴史的遺物ではあります。新しいブラウザは、おそらくこれらの機能を同じように実装します。

一般的には、入力エレメントにはvalueが使用され、非入力フィールドにはinnerHTMLが使用されます。

+0

これは '.val'を使う必要がある理由を説明していません。 –

+0

.text/.htmlの機能はありますか?私はコンソールでそれらを使用しようとしますが、それは彼らがarentであると言います –

+0

私の側でエラーだったNevermind –

0

HTML内のすべての入力は()のvalを持っており、彼らは...、このようなテキストエリア、テキスト、提出するよう、それらの値は、フォームによって処理されるH1、スパンのような

が、タグを送信することができますので、。 ..フォームには参加せず、処理されません。また、内部タグとhtmlも持つことができます。

-1

.val()は、jQueryの入力要素から値を取得するために使用されます。 JavaScriptの代替は.valueです。

.innerHTMLは、いくつかのタグの間にある値を入れるために使用されます。 innerHTMLは、要素の指定されたIDにコンテンツを挿入するDOMプロパティです。.val()を使用すると、一部の入力タグから値が取得されます。

0

textarea.innerHTML実際だろう、それが最初にレンダリングされますようval()は、ユーザの入力に基づいて、現在の値を取得します一方、テキストエリアのHTMLコンテンツを取得する作品。 val()はフォーム要素にしか作用しないと述べているので、<h1>の結果は得られません。

$('textarea').on('input', function() { 
 
    $('#innerhtml').text(this.innerHTML); 
 
    $('#val').text($(this).val()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
Type in the textarea below to see results: 
 
<br> 
 
<textarea>test123</textarea> 
 
<div>textarea innerHTML:</div> 
 
<div id="innerhtml"></div> 
 
<div>textarea val:</div> 
 
<div id="val"></div>

+0

素敵な答え..ちょうどURコードについての質問、 'on'関数は何をしますか?どうやって更新していますか? –

+0

jQuery 'on()'は要素にイベントハンドラを添付し、 'input'は' 'と'