Jquery 无法读取 Internet Explorer 上的自定义标记文本

Posted

技术标签:

【中文标题】Jquery 无法读取 Internet Explorer 上的自定义标记文本【英文标题】:Jquery cannot read custom tag text on Internet Explorer 【发布时间】:2012-07-04 00:21:09 【问题描述】:

我想在我的 html 页面中使用自定义标签并使用 jquery 来读取其中的文本, 类似:

<desc>Hello world</desc>

然后我使用 jquery 阅读文本:

desc_text=$("desc").first().text();

在 Firefox 和 Chrome 上,它可以工作,我得到了“Hello world”,但在 Internet Explorer (IE 9) 上却不行。

经过调试,问题似乎来自IE:&lt;desc&gt;&lt;/desc&gt;被视为两个不同的DOM节点。 Hello world 不是&lt;desc&gt; 的子节点。 这就是它不起作用的原因。如果我使用span 标签而不是desc 标签:它可以工作。

有没有办法让它在 IE 上运行,或者 IE 不会像 firefox / Chrome 那样解释我的自定义标签是正常的?

【问题讨论】:

为什么首先需要自定义标签?只需使用正确的 ID 和类。 【参考方案1】:

只需在文档的开头添加

<script>document.createElement('desc');</script>

这也是HTML5shiv 采用的基本思想,使 IE

【讨论】:

【参考方案2】:

http://ajaxian.com/archives/adding-custom-tags-to-internet-explorer-the-official-way

【讨论】:

以上是关于Jquery 无法读取 Internet Explorer 上的自定义标记文本的主要内容,如果未能解决你的问题,请参考以下文章

无法打开网站web服务器上似乎未安装frontpage服务器扩展 无法读取microsoft internet information server

为 Internet Explorer 8 禁用 jQuery 中的缓存问题

jQuery - 无法使用 replaceWith() 函数 - 无法读取未定义的属性“createDocumentFragment”

jQuery-UI - “无法读取未定义的属性‘步骤’”

JQuery:未捕获的类型错误:无法读取未定义的属性“调用”

jQuery.Deferred 异常:无法读取未定义的属性(读取“长度”)-> Laravel 8 Boilerplate + Bootstrap