jquery html() -> TypeError: this[0].innerHTML is undefined



我有一个元素:

var node = $(xml).find('target');

节点类似于<content><item><target>Breadcrumbs</target></item> </content>。所以node实际上是一个xml元素

我想剥离<content>节点,但保留其他所有内容。

我认为$(node).html()会工作。但我得到了一个错误。为什么这行不通呢?

当您在字符串中添加引号时:

var node = "<content><item><target>Breadcrumbs</target></item> </content>";
alert($(node).html());
结果:

<item><target>Breadcrumbs</target></item>
http://jsfiddle.net/hEtgH/

假设您的节点实际上是从dom中取出的,它将是类似的。

<content id="blah"><item><target>Breadcrumbs</target></item> </content>

:

alert($("#blah").html());
结果:

<item><target>Breadcrumbs</target></item>
http://jsfiddle.net/YrLfu/

我有完全相同的问题与jquery和ie,当试图得到一个元素的html()。原因是xml Element在IE中没有定义innerHTML。

我找到了一个临时的解决方案,里面的xhtml代码在这里:

http://www.stevetucker.co.uk/page-innerxhtml.php

它允许您将元素发送给名为innerXHTML的函数,并返回有效的html。

最新更新