这是我的剧本:
$(document).ready(function() {
$.post("mysql_calendar/json_fail.php",
function (data) {
var sel = $( "#availableTime" );
sel.empty();
for (var i=0; i<20; i++)
sel.append( 'val' + i + '; ' );
sel.append ( 'test; ' ) ;
}, "json");
var ss = $( "#availableTime" );
ss.empty();
ss.append ( 'not working 1; ', 'not working 2; ', 'not working 3; ' ) ;
json_fail.php:
< ? php
echo '[]';
? >
此脚本的结果:
Laikas:val0; val1; val2; val3; val4; val5; val6; val7; val8; val9; val10; val11; val12; val13; val14; val15; val16; val17; val18; val19; test;
为什么ss.empty ()
和ss.append
无效?如果我删除$.post part
,它就会开始工作。此外,如果我使用firebug逐步调试它,一切都按预期工作。
答案 0 :(得分:1)
预期的行为是什么? 请记住$ .post是异步的,所以首先ss将被清空,然后你追加'not working1; ...'。
然后发生$ .post回调,再次清空它并附加'val'字符串。
答案 1 :(得分:0)
帖子是异步的,导致在帖子完成后调用succss函数。
实际上你是这样做的:
$.post("mysql_calendar/json_fail.php", //1) Post begins to process.
function (data) { //5) once complete call this
var sel = $( "#availableTime" ); //6) get ss
sel.empty(); //7) call empty items added in 4) will be cleared.
for (var i=0; i<20; i++) //8) append some text
sel.append( 'val' + i + '; ' );
sel.append ( 'test; ' ) ;
}, "json");
var ss = $( "#availableTime" ); //2) get ss
ss.empty(); //3) call empty
ss.append ( 'not working 1; ', 'not working 2; ', 'not working 3; ' ) ; //4) Append stuff
您打算将最终结果作为什么?