1

多くの人が示唆しているように、変数をIDの.valueまたはとして保存しようとしました。これが私のHTMLのすべてです:.innerHTMLdocument.getElementById

<html>
<head>
<title>write</title>
<script type="text/javascript" src="g.js"></script>
<link rel="stylesheet" type="text/css" href="g.css" />
</head>

<body>
<div id="box">
    <textarea id="txt" placeholder="placeholder. type here.">text text</textarea>
</div>  
</body> 
</html>

そして、これが私のjavascriptです。現在、テキスト領域にテキストを含むアラートを発生させることを意図しています-今のところ、それは次のようになりますtext text:

function run(){
var txt = document.getElementById('txt');

alert(txt);}

run()

現時点では、ページをロードするとテキストを含むアラートが発生し、後Nullに追加するとアラートは発生しません。よろしくお願いします。.valuegetElementById('txt')

4

3 に答える 3

4

問題は、DOM が構築される前に JavaScript が実行されていることです。JavaScript ファイルをドキュメントにロードすると、タグが作成さ<head>れる前にすぐに実行されます。<textarea>

</body>スクリプト ブロックをテキストエリアの下、タグの直前に移動してみてください。

ここに例があります:フィドル

DOM が構築された後は、getElementById持っているのと同じように使用でき、value属性を使用して textarea のコンテンツにアクセスできます。これらはすべて上記のフィドルにあります。

run()または、 DOM の準備が整ったときにイベントを提供するライブラリでメソッド呼び出しをラップすることもできます。jQuery の例は次のようになります。

$(function () {
  // code you want to execute when the DOM is ready.
  run();
});
于 2012-09-08T04:09:58.210 に答える
2
function run() {
  var txt =  document.getElementById("txt").value;

  alert(txt);
 }

 $(document).ready(function(){
            run();
 });

このjsfiddleリンクを確認してください

DOM に値が存在する前に javascript 関数が実行されているため、textarea 値を取得していません

またはjavascriptを使用して

function run(){
var txt =  document.getElementById("txt").value;

alert(txt);
}


window.onload = run();

window.onload の詳細

于 2012-09-08T04:07:33.493 に答える
1

以下の JavaScript は、Firefox で動作します。実際、この質問のボタンをクリックすると、まさにこのページのfirebuganswerで試すことができます...

var textArea = document.getElementById("wmd-input"); // #wmd-input is the text input where your answer goes...
alert( textArea.value );

もちろん、最初にテキストを入力してください。

あなたがそれに取り組んでいる間に、jQuery を試してみるべきです:

alert( $("#wmd-input").val() );

またはさらに良いことに、

console.log($("#wmd-input").val());

それが役立つことを願っています。

于 2012-09-08T04:06:17.937 に答える