我正在尝试使用jquery ajax获取数据,一切正常,我得到了我想要的东西,但我无法显示它因为我得到一个未捕获的TypeError:无法读取未定义的属性'display'。
这里的代码。有什么想法吗?
/*
* Get the data from the ajax call and display a dialog
*/
function CreateDialog(email) {
// get the data from the ajax call
var promise = AjaxSubscribe(email)
// if data are available, show the dialog
promise.success(function (data) {
// data is a simple html code
var dialog = $(data);
// can't setup the dialog! Error
// Uncaught TypeError: Cannot read property 'display' of undefined
dialog.dialog({
autoOpen: false,
modal: true,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
}
});
dialog.dialog( "open" );
return false;
});
}
这是数据的输出
console.log(data)
<p>Data debugging</p>
<ul>
<li>Ip address: 193.125.139.18</li>
<li>Country Name: Italy</li>
<li>Country Code: IT</li>
<li>Email: anemail@gmail.com</li>
</ul>
答案 0 :(得分:7)
尝试将数据HTML包装在容器中,位于后端或前端:
var dialog = $('<div/>').html(data);
我不确定.dialog()
是否适用于多个文档片段(您有<p>
和<ul>
内联)。 $(data)
将是一个包含2个元素的数组,而不是.dialog()
所期望的。
答案 1 :(得分:0)
请确保文件末尾没有空行。像Vim这样的编辑器自动添加一个空行来尊重POSIX标准Why would Vim add a new line at the end of a file? 使用Sublime,您可以显示此空行。