尝试使用ajax从xml文件加载内容时,它会向我显示“undefined
”onload。刷新页面后,会立即显示内容。
这是我的代码
$.ajax({
type: "GET",
url: "xml/FIB.xml",
dataType: "xml",
success: function(xml){
var titletext=$(xml).find('Quiz').children().attr("name");
$(".title_text").append(titletext);
$(xml).find('question').each(function(){
nooffib=$(this).find("ques").length;
for(var a=0;a<nooffib;a++){
n=$(this).find('ques').eq(a).text();
questionarray[a]=n.replace("[blank]","<input id='"+a+"'type='text' class='blanktextbox' onkeyup='btnvisible()'/>");
}
})
}
});
答案 0 :(得分:2)
你做得对。但是你提供的网址不正确。通过更改网址来解决问题。
答案 1 :(得分:1)
也许未定义意味着在您进行ajax调用时尚未创建您引用的dom元素,刷新后,将创建元素“#your_selector”。尝试在文档准备就绪或特定事件之后执行,例如单击按钮,换句话说,在进行ajax调用之前检查是否已创建#your_selector:
$("#your_selector").on("click", function(event){
//execute your ajax call
});
或
$("#your_selector").live("click", function(){
//execute your ajax call
});
或
$(document).ready(function() {
//execute your ajax call
});
一个完整的例子是:
function test(){
$.ajax({
type: "GET",
url: "xml/FIB.xml",
dataType: "xml",
success: function(xml){
var titletext=$(xml).find('Quiz').children().attr("name");
$(".title_text").append(titletext);
$(xml).find('question').each(function(){
nooffib=$(this).find("ques").length;
for(var a=0;a<nooffib;a++){
n=$(this).find('ques').eq(a).text();
questionarray[a]=n.replace("[blank]","<input id='"+a+"'type='text' class='blanktextbox' onkeyup='btnvisible()'/>");
}
})
}
});
}
$("#your_selector").live("click", function(){
test();
});