Это пример из одной из книг (Ninja javascript).
Я не уверен, почему консоль жалуется, что она не может добавить null.
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>
ОБНОВЛЕНИЕ: после того, как предложение работает отлично сейчас.. спасибо всем
<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,
Почему === текст необходим выше? Какая цель здесь? (Я только что протестировал и без текста ===, он также работает.. так что было целью автора здесь?)
Это потому, что ваш скрипт, выполненный до того, как элемент с id
results
существует на странице.
Ты можешь:
window.onload
DOMContentLoaded