仅从Jquery ajax获取文件的一部分

时间:2009-06-03 12:32:11

标签: javascript jquery ajax

我有一些非常简单的示例代码:

$.ajax({
  url: 'demo2.htm',
  success: function(loadeddata){
    $("#loaded_data").after(loadeddata);
    alert('success');
  },
  error: function(){
    alert('failure');
  }
});

加载的数据当前返回所有内容。我需要的是只获得一个特定的div,然后将它添加到#loaded_data。

我该怎么做?

谢谢!

2 个答案:

答案 0 :(得分:4)

这就是jQuery在内部的作用:

$("<div/>").append(loadeddata).find('#mydiv');

如果您希望在HTML中包含SCRIPT标记,则应将其放入以避免IE中出现任何“权限被拒绝”错误:

$("<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

答案 1 :(得分:0)

好的,这是一个带有find的新pastebin,并且Paolo提到了修复脚本问题。

http://jsbin.com/esoze/edit

正如您所看到的那样,嵌入了整个页面的HTML,而不仅仅是指定的元素。