2012-08-26 11 views
15

簡単な問題。私はjQueryセレクタの中で連結したい変数をjsに持っています。しかし、それは動作していません。エラーもポップアップしません。なにが問題ですか?変数をjQueryセレクタのテキストに正しく連結するにはどうすればいいですか?jQueryセレクタで連結する

<div id="part2"></div> 

<script type="text/javascript" > 

$('#button').click(function() 
{ 
var text = $('#text').val();  
var number = 2; 
$.post('ajaxskeleton.php', { 
red: text  
}, 
    function(){ 
    $('#part' + number).html(text); 
    }); 
}); 


</script> 
+3

あなたはフィドル作成する必要があります。http://jsfiddle.net/を。 – valentinas

+0

@ ason328、あなたは 'console.log()'について知っていますか?その助けを借りて、面白い行に配置することで、コードステップで何が起こっているのかをステップごとに確認することができます – user907860

+0

いいえ、私はそれを知らなかったのです。私は今それを見るでしょう。 – jason328

答えて

30

$('#part' + number).html(text); 

の構文と間違って何もありませんjQueryのはjQuery Objectを作成するためのパラメータとして文字列(通常はCSSセレクタ)またはDOM Nodeを受け入れます。あなたのケースでは

あなたは

$(<a string>) 

あなたは変数numbertextへのアクセス権を持っていることを確認している$()に文字列を渡す必要があります。テストへ

を行います。あなたは、アクセス権を持つ関数へのパラメータとして渡すいけない表示された場合

function(){ 
    alert(number + ":" + text);//or use console.log(number + ":" + text) 
    $('#part' + number).html(text); 
}); 

は、あなたが$に.getためuualパラメータを含み、それらの後にカスタムパラメータを渡す必要があります。

+2

恐ろしい。明確な説明をありがとう。私のvar番号はundefinedと呼ばれ、すぐに修正されました。 – jason328

+0

それは固定されています。しかし、今私は混乱しています、どうしたのですか? :) – sabithpocker

+1

Noobエラー。私はclickイベントの外でvar番号を呼び出していました。 – jason328

2

連結構文が正しいです。

ほとんどの場合、コールバック関数は呼び出されていない可能性があります。その機能にalert(),console.log()またはdebugger行を入力してテストすることができます。

呼び出されていない場合、おそらくAJAXエラーが発生している可能性があります。例えば、エラーが何であるかを見つけるために$.post().fail()ハンドラを連鎖を見てください。:

$.post('ajaxskeleton.php', { 
    red: text  
}, function(){ 
    $('#part' + number).html(text); 
}).fail(function(jqXHR, textStatus, errorThrown) { 
    console.log(arguments); 
}); 
+0

$ .getコールバックの範囲は何ですか?変数番号とテキストはそこからアクセス可能ですか? – sabithpocker

+1

@sabithpocker上記のコードが完成している場合、 'number'と' text'は_lexicalスコープの一部であるためアクセスできます。コールバックの "gotcha"変数は 'this'ですが、あなたはそれを使用していません。 – Alnitak

+0

字句を明かしていただきありがとうございます。 – sabithpocker

関連する問題