为什么 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>
在 $.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>