我需要从返回的AJAX数据中替换一些单词。我是这样做的:
function loadfile(){
$.ajax({
type: 'post',
url: 'donachrichten.php',
data: {mach: "loadfile", kontaktfile: kontaktfile},
success: function(data){
var kontent = data;
var user1 = $(".user1").attr("id");
var user2 = $(".user2").attr("id");
var profilpic1 = $(".profilpic1").attr("id");
var profilpic2 = $(".profilpic2").attr("id");
var data1 = kontent.replace(new RegExp(user1, "g"), profilpic1);
var data2 = data1.replace(new RegExp(user2, "g"), profilpic2);
$("#chatnow").html(data2);
}
});
}
70%的情况下工作正常,但在30%chatnow
div中充满undefinedundefined
....
这可能是什么问题?
修改
这是在loadfile之前调用的:
function selectkontakt(z){
$("#loadnew").empty();
$("#loadold").empty();
kontaktfile = $(z).attr('id');
kontakte(); // the user1/user2 and profilpic1/profilpic2 classes are comming from here, also though AJAX
loadfile();
$("#textarea").show();
$('#usermsg').focus();
}
所以我觉得这只是一个糟糕的时机,有没有办法解决时机问题?
答案 0 :(得分:0)
可能是由于id或元素不存在。如果您使用ajax加载该用户元素。在元素加载/ ajax成功后使用此函数。
答案 1 :(得分:0)
我这样解决了:
function selectkontakt(z){
$("#loadnew").empty();
$("#loadold").empty();
kontaktfile = $(z).attr('id');
kontakte();
loadfile().done(kontakte); // HERE
$("#textarea").show();
$('#usermsg').focus();
}
因此,时间不能再被打破:)