【问题标题】:Getting only a part of a file from Jquery ajax仅从 Jquery ajax 获取文件的一部分
【发布时间】:2009-06-03 12:32:10
【问题描述】:
我有一些非常简单的示例代码,如下所示:
$.ajax({
url: 'demo2.htm',
success: function(loadeddata){
$("#loaded_data").after(loadeddata);
alert('success');
},
error: function(){
alert('failure');
}
});
加载的数据当前返回所有内容。我需要做的是只获取一个特定的 div,然后将其添加到#loaded_data。
我该怎么做?
谢谢!
【问题讨论】:
标签:
javascript
jquery
ajax
【解决方案1】:
这是 jQuery 内部的做法:
$("<div/>").append(loadeddata).find('#mydiv');
如果您希望在 HTML 中包含 SCRIPT 标记,则应将其放入以避免 IE 中出现任何“Permission Denied”错误:
$("<div/>").append(loadeddata.replace(/<script(.|\s)*?\/script>/g, "")).find('#mydiv');
编辑:
你错过了应该发生的事情的重点。
通过执行$("<div/>").append(...);,jQuery 创建了一个虚拟<div>,并通过将其插入<div> 中让浏览器解析HTML。完成后,我们可以找到我们想要的 DIV,并返回 HTML。所以我应该放在上面的更合适的代码示例如下所示:
var html = $("<div/>").append(loadeddata).find('#mydiv').html();
$('#whereIwantIt').html(html);
正如您在链接中看到的那样,this does what you want。
【讨论】:
-
感谢您的帮助。我不确定这里发生了什么。但我无法让它发挥作用。 jsbin.com/avamo我只想在页面中添加#hello。我不确定为什么在 ajax 完成后它变成白色。但在那一瞬间,我看到整个页面都被添加了,而不仅仅是我指定的部分。谢谢。