我想在调用$ .ajax()后得到一个带有ID的div元素 这是我的代码:
$.ajax({
url: "PO_Header.php",
data: "supplier="+selectedId,
cache: false,
success: function(html){
$("#PO_Header").empty();
$("#PO_Header").append(html);
}
});
$("#PO_Header").append(html);
将附加整个html页面,我想要的是获取具有特定id的元素。假设在PO_Header.php
中,我的当前页面会注入一个带有id='mydiv'
的div元素。
答案 0 :(得分:5)
使用jQuery的加载:
$('#PO_Header').load('PO_Header.php #mydiv', { 'supplier': selectedId } );
它允许您加载页面片段。正如他们documentation所指出的那样:
加载页面片段 与$ .get()不同,.load()方法允许我们指定一部分 要插入的远程文档。这是 使用url参数的特殊语法实现。如果一个或多个 空格字符包含在字符串中,即字符串的一部分 在第一个空格后面假设是一个jQuery选择器 确定要加载的内容。
因此,它只会将PO_Header.php中的<div id="myDiv"></div>
注入您的元素。
答案 1 :(得分:3)
您可以使用.load()。
加载页面片段
与$.get()不同, .load()方法允许我们指定要插入的远程文档的一部分。这是通过url参数的特殊语法实现的。如果字符串中包含一个或多个空格字符,则假定第一个空格后面的字符串部分是jQuery选择器,用于确定要加载的内容。
基本上你可以像这样使用它:
$('#PO_Header').load('PO_Header.php #mydiv', { 'supplier': selectedId } );
要禁用cache
,您可以在代码的开头使用
$.ajaxSetup({
cache: false
});
修改强>
.load()与 .get()大致相同,除了以下几个原因:
.load()有一个隐式回调函数,可在成功响应时将返回的HTML内容设置为提供的元素。
它具有url
参数的特殊语法,用于仅指定要插入的返回文档的确定部分。
默认方法为GET
。除非将data
参数作为对象传递,否则将使用POST
方法。
答案 2 :(得分:2)
我更喜欢在外部函数中绑定到ajax加载的元素,并在我的success函数中调用它。
function binder(){
$("#mydiv")....do something here
}
$.ajax({
url: "PO_Header.php",
data: "supplier="+selectedId,
cache: false,
success: function(html){
$("#PO_Header").empty();
$("#PO_Header").append(html);
binder();
}
});
答案 3 :(得分:1)
试试这个
$.ajax({
url: "PO_Header.php",
data: "supplier="+selectedId,
cache: false,
success: function(html){
var new_html = $(html).find('#mydiv').html();
$("#PO_Header").empty();
$("#PO_Header").append(new_html);
}
});
答案 4 :(得分:0)
我从CSS-Tricks中发现这个例子非常有帮助 -