为什么 selector.text 得到一个内部函数值?

Why is selector.text getting an internal function value?

$.ajax success 函数中,我试图 运行 延迟,然后再进行另一个调用。我的文档有一个 <DIV ID="status"></DIV> 元素,所以这里的第一步工作正常:

$("#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 中的文字变为

function ( value ) { return access( this, function( value ) { return value === undefined ? jQuery.text( this ) : this.empty().each(function() { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { this.textContent = value; } }); }, null, value, arguments.length ); }.

这是怎么回事? notice.text(notice.text + "."); 为什么不简单地在 DIV 中的文本后附加一个 .

jQuery的text()是函数,不是属性,用作$("#status").text("Refreshing");

但是它确实接受一个回调,你可以用它来连接文本,就像这样

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

当您执行 notice.text(notice.text + "."); 时,您正在尝试向函数引用添加句点

你的函数没有问题。您只是错误地使用了 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>