document.getElementById 找不到 qUnit DOM 个元素

document.getElementById can't find qUnit DOM elements

我试图获取对由 qUnit 创建的 DOM 对象的引用,但没有成功。它适用于 "home made" DOM 元素。我做了一个test site来说明这个问题。访问站点时打开 Firebug 或其他日志记录 window。

这是网站的代码:

window.onload = function() {

 var qunitTestrunnerToolbar_element = document.getElementById("qunit-testrunner-toolbar");
 console.log("qunitTestrunnerToolbar_element: ", qunitTestrunnerToolbar_element);

 var test_element = document.getElementById("test_element");
 console.log("test_element: ", test_element);
};
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Testing 'require' error</title>
</head>
<body>
    <p>See console for output</p>
    <script src="index.js"></script>
    <script src="http://code.jquery.com/jquery-2.2.0.js"></script>
    <p id="test_element">Test element</p>
</body>
</html>

这样不行

我不是在谈论 qunitdocument.getElementById("qunit-testrunner-toolbar"); 将 return 为空,因为此 html.

中不存在任何元素

如果您特别询问如何获取实际 ID 而不是 null

您可以在这个html中添加您的原始脚本文件,然后var qunitTestrunnerToolbar_element = document.getElementById("qunit-testrunner-toolbar");console 它在 indexjs 如果你可以在你的测试中包含 <iframe> html 你可以做

<iframe src="urlWithinYourDomain.html" style="display:none" id="iframeId"></iframe> 在 indexjs

var qunitTestrunnerToolbar_element = document.getElementById('iframeId').contentWindow.document.getElementById('qunit-testrunner-toolbar'); 如果你喜欢 html 方式。