我如何使用 jQuery 的 ajax 方法从 html 获取 dom 元素?
我遇到了一个独特的问题。我正在使用 jQuery 进行简单的 ajax 调用来获取 html 文件的内容。
$.ajax({
url: "foo.html",
dataType: "html",
success: function(data){
console.log(data);
}
});
foo.html 是一个简单的 html 文件,其主 div 称为#mainContainer。我想做的就是从 mainContainer 中获取所有内容并将它们存储在 var 中,这样我就可以将它们添加到页面中的另一个 div 中。
这是 index.html (正在进行调用的文件)。
这是 foo.html (我试图调用和解析的文件)。
I have encountered a unique problem. I am doing a simple ajax call using jQuery to get the contents of an html file.
$.ajax({
url: "foo.html",
dataType: "html",
success: function(data){
console.log(data);
}
});
foo.html is a simple html file with a main div called #mainContainer. All I want to do is get all of the contents from the mainContainer and store them in a var so i can add them to another div somewhere in my page.
Here's index.html (the file that is making the call).
Here's foo.html (the file i am trying to call and parse).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
jQuery“.load()”API 完全满足您的要求:
您只需在 URL 后面添加一个选择器字符串,并用空格分隔即可。
需要注意的一件事是:如果加载的页面中有任何重要的 JavaScript(在
标记中),当您以这种方式加载页面时,脚本将不会运行。如果您需要这种行为,那么您要么必须自己提取内容(这是一个小混乱),要么让您的服务器完成工作并仅响应您需要的片段。
一种完全不同的方法是将页面加载到隐藏的
中,然后深入到该 DOM 中找到您想要的内容。然后可以将其复制到主页中。
The jQuery ".load()" API does exactly what you're asking for:
You simply add a selector string after the URL, separated by a space.
One thing to note: if the loaded page has any important JavaScript in it (in
<script>
tags), when you load the page that way the scripts will not be run. If you need that behavior, then you either have to pull out the content yourself (which is a minor mess) or else have your server do the work and respond with only the fragment you need.A completely different approach would be to load your page into a hidden
<iframe>
and then dive into that DOM to find what you want. It could then be copied into the main page.var mainContainerInnerHtml = $(data).find("#mainContainer).html();
var mainContainerInnerHtml = $(data).find("#mainContainer).html();
你不需要获取 dom 元素。
您可以使用查询replaceWith函数来替换。
就像这样:
它对我有用。
you do not need get the dom elements.
you can use query replaceWith function to replace.
just like this:
it works to me.