忍者javascript一书中的javascript练习
这是本书(忍者javascript)中的一个例子 我不知道为什么console一直抱怨它不能附加到null忍者javascript一书中的javascript练习,javascript,html,dom,Javascript,Html,Dom,这是本书(忍者javascript)中的一个例子 我不知道为什么console一直抱怨它不能附加到null document.getElementById("results").appendChild(li); 这就是我看到错误的地方。。我做错什么了吗 整个代码如下: <body> this.assert = function assert(value, desc) { var li = document.create
document.getElementById("results").appendChild(li);
这就是我看到错误的地方。。我做错什么了吗
整个代码如下:
<body>
this.assert = function assert(value, desc) {
var li = document.createElement("li");
li.className = value ? "pass" : "fail";
console.log("this is ", value);
console.log("that is ", desc);
console.log("that is ", li);
// console.log("that is ", className);
//console.log("that is ", results);
li.appendChild(document.createTextNode(desc));
document.getElementById("results").appendChild(li);
if ( !value ) {
li.parentNode.parentNode.className = "fail";
}
return li;
};
function useless(callback) {return callback(); }
var text = "Domo Arigato!";
assert(useless(function() {return text;}) === text,
"The useless function works! " + text);
</script>
<ul id="results"></ul>
为什么上面需要===文本?它在这里有什么用途??
(我刚刚测试了并且没有===文本,它也可以工作..那么作者的意图是什么?这是因为您的脚本在页面上存在
结果的id
元素之前执行
你可以:
- 将脚本放在它后面
- 在
窗口期间执行脚本。onload
事件
- 更合适的事件是事件
标记也没有打开。@krillgar但提到的错误似乎表明脚本确实运行了。同意。但这仍然应该得到解决。我有点惊讶它居然运行了,但是javascript让这么多的事情都过去了。很抱歉,我在这里粘贴错误地忽略了开头脚本。现在试试看这个建议。@krillgar缺少的
标记肯定不是JavaScript可以忽略的东西之一。
<script>
window.onload = function () {
function useless(callback) {return callback(); }
var text = "Domo Arigato!";
assert(useless(function() {return text;}) === text,
"The useless function works! " + text);
}
</script>
<ul id="results"></ul>
assert(useless(function() {return text;}) === text,