30

単純な問題。jQueryセレクター内でも連結したいjs変数があります。しかし、それは機能していません。エラーも発生していません。なにが問題ですか?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> 
4

2 に答える 2

44

の構文に問題はありません

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

jQueryは、 jQueryオブジェクトを作成するためのパラメーターとして文字列(通常はCSSセレクター)またはDOMノードを受け入れます。

あなたの場合、あなたはそれに文字列を渡す必要があり$()ます

$(<a string>)

number変数とにアクセスできることを確認してくださいtext

テストするには:

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

アクセス権がない場合は、それらをパラメーターとして関数に渡します。$。getの通常のパラメーターを含め、その後にカスタムパラメーターを渡す必要があります。

于 2012-08-26T23:11:00.500 に答える
4

連結構文は正しいです。

ほとんどの場合、コールバック関数は呼び出されていません。その関数にalert()console.log()または行を入れることで、それをテストできます。debugger

呼び出されていない場合は、AJAXエラーが発生している可能性があります。エラーが何であるかを見つけるために、.fail()後でハンドラーをチェーンすることを見てください。例:$.post()

$.post('ajaxskeleton.php', {
    red: text       
}, function(){
    $('#part' + number).html(text);
}).fail(function(jqXHR, textStatus, errorThrown) {
    console.log(arguments);
});
于 2012-08-26T23:11:59.240 に答える