2016-04-07 19 views
1

私は動的に2つのボタンを作成しています。動的に作成されたボタンテキスト

ボタンのテキストを変更するにはどうすればよいですか?以下は私が試みたものですが、うまくいきません。

$(document).on('click', '.class', function(e){ 
    var thisbut = this.id; 
    $.post('my.php',{ val: val1 }, function(done){ 
     document.getElementById(thisbut).innnerHTML = "Button Text New"; 
    }); 
}); 
+3

のIDは 'それは代わりにinnnerHTML''の '.innerHTML' –

+1

使用' innerHTML'でなければなりません.innnerHTML'ありません。 – Azim

+0

'innnerHTML' typo..が' innerHTML'であることを確認してください –

答えて

7

innnerHTMLinnerHTMLであるべきであり、ボタンはすべて固有のIDを持っている場合、あなたのコードは動作します。

代わりにあなたが直接要素を使用することができます - IDでそれを再選択する必要はありません。

this.innerHTML = "Button Text New"; 

かのjQuery:編集した質問の後

$(this).text("Button Text New"); 

ボタンを以下のような変数に割り当ててから、成功ハンドラで使用することができます。単にあなたがさらなる使用のためにそれを維持することができ、変数のボタンを格納することによりのでthisコンテキストは、変更されたため、成功ハンドラでthisは動作しません使用して:

$(document).on('click', '.class', function(e){ 
    var thisbut = this; 
    $.post('my.php',{ val: val1 }, function(done){ 
     thisbut.innnerHTML = "Button Text New"; 
     // or jQuery: 
     $(thisbut).text("Button Text New"); 
    }); 
}); 
+0

$ .post()リクエストのためにYou'rの解決策がうまくいかなかったのでしょうか?私の編集を見てください。 – Becky

+0

ありがとうございます。しかし、ボタンテキストは 'thisbut.innnerHTML =" Button Text New ";が' $ .post( 'my.php'、{val:val1}、function(done){'の上にあるときのみ変更されます。 – Becky

+0

成功ハンドラで動作していない場合は、成功ハンドラが実行されていない可能性があります。おそらくmy.phpがエラーになっている可能性があります。 – MrCode

1

は、取得するには$(this)を使用してみてください要素

$(document).on('click', '.class', function(e){ 
    var thisbut = $(this).attr("id"); 
    document.getElementById(thisbut).innerHTML = "Button Text New"; 
}); 
関連する問題