2017-09-27 7 views
0

$.ajax success関数では、別の呼び出しを行う前に遅延を実行しようとしています。マイドキュメントは<DIV ID="status"></DIV>要素を持っているので、ここでの最初のステップは正常に動作します:selector.textが内部関数値を取得するのはなぜですか?

$("#status").text = "Refreshing"; 

しかし、私はこのようなsetInterval機能を使ってそのテキストに楕円を追加しようとすると:その内のテキスト

var count = 0; 
var waitingID = setInterval(waiting, 1000); 
function waiting() { 
    if(count == 5) { 
     clearInterval(waitingID); 
     CallUpdate(); 
    } 
    else { 
     count++; 
     var notice = $("#status"); 
     notice.text(notice.text + "."); 
    } 
} 

DIV

関数(値){戻りアクセス(この、関数(値)未定義{ 戻り値===なる? jQuery.text(this): this.empty()。each(function(){ if(this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9){ this.textContent = value; } }); }、null、値、arguments.length); }。

何が起こっているのですか? notice.text(notice.text + ".");がのテキストに.を単に追加するのはなぜですか?

答えて

1

関数に間違いはありません。あなたはちょうどjQueryのtext()関数を間違って使用しています。

$('#status').text('Refreshing'); 
 
var count = 0; 
 
var waitingID = setInterval(waiting, 1000); 
 
function waiting() { 
 
    if(count == 5) { 
 
     clearInterval(waitingID); 
 
     console.log('CallUpdate()'); 
 
    } 
 
    else { 
 
     count++; 
 
     var notice = $("#status"); 
 
     notice.text(notice.text() + "."); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p id="status"></p>

1

jQueryのtext()は、それはしかし、この

var notice = $("#status"); 
notice.text(function(_,txt) { 
    return txt + "." 
}); 

ときにあなたのように、テキストを連結するために使用できるコールバックを受け入れるん$("#status").text("Refreshing");

として使用されるように、機能、ない財産でありますdo notice.text(notice.text + ".");関数参照にピリオドを追加しようとしています

+1

私はそれが同様に通常の文字列を取ると信じて、これだけだけでなく 'NOTICE.TEXT可能性があり(TXT + "")' – Svenskunganka

+0

はい、それは任意の正規の文字列を取るだろう、 'notice.text'は文字列ではなく、オブジェクト、より具体的にはOPが文字列に連結しようとしている関数 – adeneo

+0

ああ、それは正しいです。私が考えていたはずの略記は 'notice.text(notice.text()+"。 ");'です。 << that works nicely – feetwet

関連する問題