2011-11-14 9 views
0

私はテキストエリアに物事を追加しようとしています。それは動作していません...javascriptが動作しないtextarea

<html><head></head><body> 
<div id="wrapper"> 
<div id="leftc"> 
text here 
<a href="#" onclick="javascript: $('wrapper').$('rightx').$('thebox').value += 'TEST\ntest\n\ntest">Add</a> 
</div> 
<div id="rightx"> 
<textarea id="thebox" rows="10" cols="50"></textarea> 
</div> 
</div> 
</body></html> 

アイデア?

編集:私は使用した溶液:(私のエラーへの洞察ありがとうございました)

<a href="#" onclick="javascript:document.getElementById('thebox').value += 'TEST\ntest\n\ntest';">Add</a> 
+1

はありませんが、私はこれはあなたの完全なマークアップで推測していますか? jQueryへの参照はどこですか? – Brandon

+0

Firefox Goldアカウントをお持ちですか?コードにエラーを記録するコンソールが含まれています。それは非常に便利です。 –

+0

@Brandon、いいえjquery。これが私の持つすべてです。可能であれば私はJavaScriptのみのソリューションを探しています... – David19801

答えて

3

コードのこの作品は、意味がないとエラーに満ちている:

$('wrapper').$('rightx').$('thebox').value += 'TEST\ntest\n\ntest 

適切なjQueryのコードは次のようになります。

$('#thebox').get(0).value += 'TEST\ntest\n\ntest'; 

それとも、これはごく単純なJavaScriptでより簡単かもしれません。

document.getElementById("thebox").value += 'TEST\ntest\n\ntest'; 

あなた持っていた次のエラー:

  1. 引用符のエラー
  2. 複数の独立したjQuery呼び出しが無効で不必要に連鎖しています。
  3. .VALUEは、jQueryの方法あなたがHTML/headタグを用意しましたので(それはだDOMメソッド)
0

あなたはjQueryを使って伝統的なJavaScriptを混合しているように見えます$('#thebox').val('test');

+0

いいえ、それは動作しません。 – Pointy

+0

申し訳ありませんが、タイプミスがありました。私は '#' – Toby

2

をちょうど必要があります。単にjQueryでこれを行うことができます

$('#thebox').val($('#thebox').val()+"TEST"); 

ポイントとして、あなたの例の最後にあるテスト文字列の最後の引用符もありません。

また、FirefoxでChromeデバッガやFirebugなどを使用していない場合は、これらの単純なエラーの一部を出力するブラウザを使用することをおすすめします。これにより、ブラウザでJavaScriptエラーが発生するのを多くの時間とストレスから解放します。

2

それは働いていないことが

<a href="#" onclick="$('#thebox')[0].value += 'TEST\ntest\n\ntest'">Add</a> 

:-)ほとんどすべて間違っているので、「ID」属性はとにかくグローバルに一意の値を持っている必要があるため、「ID」の値でDOMを歩いても意味がありません。したがって、あなたが心配する必要がある唯一の "id"は、<textarea>要素のものです。

-1

恐らく'TEST\ntest\n\ntest文字列をもう一度'で閉じてみてください。

+0

はい、それをスキップしました。それは重要です。しかしハンドラの残りの部分全体も間違っています:-) – Pointy

+0

Yikes。申し訳ありませんが.... – Nonym

0
<html><head> 
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script></head><body> 
<div id="wrapper"> 
    <div id="leftc"> 
    text here 
    <a href="#" onclick="javascript: $('#thebox').val($('#thebox').val() + 'TEST\ntest\n\ntest')">Add</a> 
    </div> 
    <div id="rightx"> 
    <textarea id="thebox" rows="10" cols="50"></textarea> 
    </div> 
</div> 
</body></html> 
+0

なぜ '#box 'の代わりに' #wrapper #rightx#thebox'をセレクタとして使うのですか?後者は、はるかに高速で正確です。 – jfriend00

+0

あなたは正しいjfriend00です。コードをすばやく編集しました。もう一度編集しました。 – Dev

関連する問題