微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 为什么获取外部HTML不起作用?

我尝试以两种不同的方式获取外部 HTML,基于 this question.不幸的是,它们都没有给出预期的结果:

HTML:

<div id='my_div'>Hello</div>

JS:

$(function() {
    document.write('[' + $('#my_div').clone().wrapAll("<div />").parent().get(0).innerHTML + ']<br />');
    document.write('[' + (new XMLSerializer().serializetoString(document.getElementById('my_div'))) + ']');
});

输出是:

[
Hello
]
[
Hello
]

我希望得到以下结果:< div id ='my_div'> Hello< / div>

Live example here

我究竟做错了什么 ?

解决方法

首先,你的第一个例子工作正常.看一下 Firebug中的输出.注意,由于输出是HTML,因此它呈现为HTML.请注意,在HELLO之前和之后都有新行……………因为HELLO在DIV内部!

看一看:

第二个w / jQuery,你也可以使用the method in my answer to the question you linked to

var outerHTML =  $('<div>').append( $("#my_div").clone() ).html();

jsFiddle example

这会将有问题的元素的克隆附加到DIV jQuery对象,并获取DIV jQuery对象的内部HTML ….这是所讨论元素的outerHTML.

元素的outerHTML的一般形式是:

$('<div>').append( $(ElementSelector).clone() ).html();

其中ElementSelector是您想要的outerHTML元素的jQuery选择器.

注意:上面没有为DOM添加新元素. $(‘< div>‘)……永远不会添加到DOM中.它仍然只是独立于DOM的jQuery对象.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据复制操作的两种方式。‌在聊深浅拷贝之前咱得了解一下js中的两种数据类型:
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:重建二叉树、反向输出链表每个节点 题目 重建二叉树: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列 {1,2,4,7,3,5,6,8} 和中序遍历序列 {
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须了解的知识点,现在迎来了ES6+的时代,因为箭头函数的出现,所以感觉有必要对 this 问题梳理一下,所以刚好总结一下JavaScript中this指向的问题。
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高