【发布时间】:2010-02-19 20:15:56
【问题描述】:
我一直在努力解决这个问题。采用以下 HTML 正文:
<body>
<div id="project">
<h1>Hi</h1>
<h2>Hello</h2>
</div>
</body>
还有下面的 jQuery 代码:
$(function(){
var h = $('#project').html();
$('#project').remove();
$(h).hide().appendTo('body');
alert("Created HTML, hide, and appended!");
});
$(h).hide() 部分导致 jQuery 在 Safari 4 和 Firefox 3.5 中抛出异常。
Safari: TypeError: Result of expression 'this[a].style' [undefined] is not an object.
Firefox: uncaught exception: [Exception... "Could not convert JavaScript argument arg 0" nsresult: ...]
当我将 HTML 更改为仅包含两个标题之一时(如果您从 HTML 中删除 <h1> 或 <h2>,脚本会成功运行。这是为什么呢?
要亲自尝试,请参阅http://jsbin.com/avisi/edit
编辑:我实际上并没有尝试从 DOM 中删除元素并通过复制 HTML 重新插入它。这只是我在更复杂的代码中遇到的错误的测试用例,我试图了解为什么会发生此错误。我同意,如果我想完成这里显示的内容,我会使用类似$('#project').remove().children().appendTo('body')
【问题讨论】:
标签: javascript jquery html