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

标签 jquery html custom-tags

我想在我的 html 页面中使用自定义标签并使用 jquery 读取其中的文本, 像这样的东西:

<desc>Hello world</desc>

然后用 jquery 阅读文本:

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

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

经过调试,问题似乎出在IE:<desc></desc>被视为两个不同的 DOM 节点。 Hello world不是 <desc> 的子节点. 这就是它不起作用的原因。如果我使用 span标签而不是 desc标签:有效。

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

最佳答案

只需在文档的头部添加

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

这也是从 HTML5shiv 中采用的基本思想,使 IE<9 能够正确解析新的 HTML5 元素(无论如何请注意,您将无法通过 javascript 动态注入(inject)此元素进入DOM)

关于Jquery 无法读取 Internet Explorer 上的自定义标记文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11313110/

相关文章:

javascript - 如何使用 javascript 删除所有内联样式并仅保留 css 样式表中指定的样式?

JQuery:访问 Post 参数

javascript - 在 javascript 输出中设置字体样式

java - 编译Simple自定义标签类时出现错误

java - jsp自定义标签: doAfterBody method is not invoked

javascript - jQuery 延迟未按预期工作

html - IE 9+ 下载属性解决方法

css - 带 div 的子菜单

javascript - 在自定义 HTML 元素上定义多个自定义属性

javascript - 远程自动完成的错误处理不起作用