0

jQuery で $.get を使用してページ全体をリクエストしており、特定の要素のコンテンツを取得したいと考えています。これとは別に、次のようになります。

$.get( "/page.html").done(function( data ) {
   // get textArea.
});

そして私は取得したい:

document.getElementByTagName("textArea")[0].value;

しかし、データに対して getElementByTagName を実行できないので、これを行う最善の方法は何ですか?

4

5 に答える 5

0

jquery load() 関数を試すことができます。

リモートサーバーからロードし、選択した要素にドキュメントを挿入します。

また、挿入するリモート ドキュメントの一部を指定することもできます。

リモート テキストエリアの ID が「リモート」で、リモート コンテンツを ID が「ローカル」のテキストエリアに取得したいとします。

var result="";
$("#local").load("/page.html #remote", function(response, status, xhr){
  result=$(this).find("#remote").val();
}); 

リモート テキストエリアを取得して、現在のドキュメントの要素に挿入するかどうかはわかりません。

リモートテキストエリアの値を取得したいだけの場合は、要素を呼び出すロード関数を非表示にすることができます

これがお役に立てば幸いです。

于 2013-10-14T07:21:59.540 に答える
0

//str は page.html を表します

var str = 'gibberish gibberish <textarea class="test">hello world</textarea>gibberish';

$.each( $.parseHTML(str), function( i, el ) {
    if(el.firstChild) console.log(el.firstChild);
});

フィドル: http://jsfiddle.net/ez666/7DKDk/

于 2013-10-14T07:49:56.297 に答える
0

やっていることとは少し違いますが、参考になればと思います。.load代わりに呼び出しgetて、ページ全体を div に追加することができます<div id="mydiv"></div>

var value;
$('#mydiv').load('xyz.html',function(){value=$('#mydiv').find('#mytextarea').val()})

ただし、表示したくない場合はmydiv、メイン ページが読み込まれると最初に非表示にすることができます。ページにこの div も必要ない場合は、上記のタスクが実行された後に削除できます。

$(document).ready(function(){
  $('#mydiv').hide();
  var value;
  $('#mydiv').load('xyz.html',function(){value=$('#mydiv').find('#mytextarea').val()});

 $('#mydiv').remove();
})
于 2013-10-14T07:25:38.813 に答える