gpt4 book ai didi

javascript - (X)HTML 文档中的 getElementsByTagNameNS

转载 作者:行者123 更新时间:2023-11-30 13:38:01 25 4
gpt4 key购买 nike

我有一个关于 Javascript 和 DOM 的问题;下面的代码不应该检索正文中的三个 foo:bar 元素吗?警报窗口显示为零。它在我拥有的任何浏览器(甚至不是 Chrome Canary)中都不起作用。感谢您的帮助,周末愉快。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:foo="http://example.com">
<head>
<title>Hello!</title>

<script type="text/javascript">
function bodyLoad() {
var extElements = document.getElementsByTagNameNS('http://example.com', 'bar');

alert(extElements.length);
}
</script>
</head>

<body onload="bodyLoad();">
<foo:bar>First Foo-Bar</foo:bar>
<foo:bar>Second Foo-Bar</foo:bar>
<foo:bar>Third Foo-Bar</foo:bar>
</body>
</html>

最佳答案

您提供的文档内容类型可能有误。浏览器必须将其视为 XML 才能识别 namespace ,因此您需要使用 application/xhtml+xml 或其他 XML 内容类型,而不是 text/html .

顺便说一句,您的 Doctype 是错误的。如果您想使用 DTD,那么您将需要一个包含您正在使用的来自 foo namespace 的元素的 DTD。如果您不这样做,那么只需摆脱 Doctype — 它与 XML 文档中的呈现模式无关(同样,text/html 文档被视为标签汤,而不是 XML)。

关于javascript - (X)HTML 文档中的 getElementsByTagNameNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3793672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com