以下の結果は、JQuery 2.1.0 + Firefox 32 で確認したものです。
最初のAjaxの結果がどのような内容か分かりませんので、ra
に正しい値が入っていない前提で書いています。ra
に文字列がセットされていれば、後続のAjaxは動作すると思います。
最初のAjaxの結果data
にHTML自体が格納される場合、data.responseText
は不要です。
また、ra =$(<context>, <element>)
は、文字列ではなく、JQueryオブジェクトが返されます。
ra =$(".class", data).text()
とすれば、取得したい文字列が得られるかもしれません。
(追記1)
こちらもJQuery 1.7.2に切り替えました。
最初のAjaxの結果がJSONで返されるのであれば、data
はJSONオブジェクトで返されますので、$(".class",data.responseText)
ではなくて、data.urlname
のような方法で取得します。
(追記2)
非同期でAjax呼び出しを行うと、②が実行された時点では①が実行されていないので、raには値がセットされません。
このままで実行したいのでしたら、非同期をオフにします。(async=false
)
ただし、こうするとメインスレッドで通信を行ってしまうため、最初のAjaxの応答に時間がかかると、制御が戻ってきません。
success
の関数から、2度目のAjaxを呼ぶようにしたほうが良いと思います。
参考URL:
jQuery - async:false とは何か。或いは、非同期処理を諦めるのはまだ早い! - Qiita
lang
1$.ajax({
2 url: $('#c').text(),
3 type: 'GET',
4 async: false, // 非同期通信をオフ(デフォルトではtrue)
5 success: function(data) {
6 var ra = $(".class",data.responseText).text();
7 $('#b').html(ra);//①
8 }
9});
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。