我有这段代码:
$('#customerPaymentTable > tbody > tr').eq(index).after("<tr><td colspan='6'><center>" + $('#customerRecordForm').load(url) + "</center></td></tr>");
问题是它返回此值object Object
而不是div元素。奇怪的部分是如果我独立加载div,我的意思是如果我不将它插入表格行中它正在工作。
工作代码是:
$('#customerRecordForm').load(url);
我怎么能让它发挥作用?我真的需要插入div格式。请帮忙。提前谢谢。
答案 0 :(得分:2)
问题是因为$('#customerRecordForm').load(url);
会使用来自网址的HTML填充#customerRecordForm
元素,然后返回jQuery对象,而不是HTML作为字符串。
您有两种选择。首先,您可以更改逻辑以从AJAX调用获取所需的HTML,然后将其插入表格单元格中,如下所示:
$.ajax({
url: url,
dataType: "html",
success: function(html){
$('#customerPaymentTable > tbody > tr').eq(index).after("<tr><td colspan='6'><center>" + html + "</center></td></tr>");
}
});
或者,您可以附加单元格,然后在该新元素上调用load()
,如下所示:
var $row = $('#customerPaymentTable > tbody > tr').eq(index);
$row.after('<tr><td colspan='6' class="foo"></td></tr>');
$(".foo", $row).load(url);
答案 1 :(得分:1)
我认为你是以某种奇怪的方式使用它。
您应该在要加载数据的元素上调用load函数。 load(url)函数没有返回输出值。它只是从URL加载字符串并将其放入ID为customerRecordForm
的元素中所以当你创建一个
<div id="customerRecordForm"></div>
然后在javascript中你只需要打电话:
$('#customerRecordForm').load(url);
此处有更多信息:http://api.jquery.com/load/
在你的例子中,它可能是这样的:
$('#customerPaymentTable > tbody > tr').eq(index).after("<tr><td colspan='6'><div id='customerRecordForm'></div></td></tr>");
$('#customerRecordForm').load(url);
答案 2 :(得分:1)
jQuery.load()不会返回有效的HTML块,而是返回jQuery对象。此外,jQuery.load()将内容异步加载到您调用它的元素中。当然不是你想要的......
您必须在加载内容后注入html代码。
$.get(url, function (response) {
$('#customerPaymentTable > tbody > tr').eq(index)
.after("<tr><td colspan='6'><center>" + response + "</center></td></tr>");
});