Хорошо, поэтому я немного озадачен этим, сначала я покажу вам код, а затем объясню.Для цикла Поиск ID's Javascript
var number = 1;
var maxguess = 6;
/*make the array of possible words*/
var arr = ["horse", "cow", "blueberry", "apples", "time", "hollow", "pumpkin", "telephone", "computer", "calculator", "tower", "castle"];
/*write shuffler code*/
function shuffle(array) {
var currentIndex = array.length, temporaryValue, randomIndex ;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
// And swap it with the current element.
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
/*shuffle the array*/
shuffle(arr);
/*make the storage array for user entry*/
var gstore = [];
/*get the first entry in the array, make it a string, and remove any commas*/
var teme = arr.slice(0, 1).toString().replace(/,/g,'');
console.log(teme);
for (var i = 0; i <= 9; i++) {
if (i > teme.length){
document.getElementById(i).innerHTML="x";
}
}
/*listen for button click*/
document.getElementById('sendIt').addEventListener('click', process);
/*function for 'process'*/
function process() {
/*get the guess from the user*/
var guess = document.getElementById('guess').value.toString().toLowerCase();
/*check for any index of this guess*/
if (gstore.indexOf(guess, 0) == -1){
/*store this guess*/
gstore.push(guess);
/*make storage array for letter indicies*/
var indices = [];
/*find indicies of the guess*/
for(var i=0; i<teme.length;i++) {
if (teme[i] === guess) {
document.getElementById(i).innerHTML = guess.toString();
}
}
number++;
}
if (gstore.indexOf(guess, 0) != -1){
}
}
Хорошо, так что это палач-игра, которую я делаю в классе. В нижней части JS вы можете видеть, что я написал following-
вfor(var i=0; i<teme.length;i++) {
if (teme[i] === guess) {
document.getElementById(i).innerHTML = guess.toString();
}
}
Теперь это не дает мне абсолютно никаких ошибок в консоли JS если оставить как есть. Теперь, я получаю сообщение об ошибке, когда на линии говоря
document.getElementById(i).innerHTML="";
, когда я его вне функции кнопки мыши здесь
console.log(teme);
for (var i = 0; i <= 9; i++) {
if (i > teme.length){
document.getElementById(i).innerHTML="";
}
}
Чтобы быть конкретным, то состояние ошибки
[Error] TypeError: null is not an object (evaluating 'document.getElementById(i).innerHTML=" "')
global code (clar.js, line 31)
сейчас если здесь возникает ошибка, стоит ли менять код в этом месте или я делаю что-то нехорошее в обоих случаях, даже если работает второй экземпляр?
Вся помощь очень ценится, и мой Javascript учитель не имеет ни малейшего представления, вы можете ввести переменную при написании
document.getElementById(variableName)
так что он буквально не поможет мне, и также я нахожу это хорошо, чтобы быть в состоянии чтобы сделать что-то без рамки
редактирования: извините, забыл HTML, которые должны помочь очистить воздух, как к тому, что я делаю
<html>
<head>
</head>
<body>
<input type="text" name="" value="" id="guess" /><br>
<input type="button" name="" value="submit" id="sendIt" /><br />
<script src="./clar.js" type="text/javascript"></script>
<span id="0"></span><span id="1"></span><span id="2"></span><span id="3"></span><span id="4"></span><span id="5"></span><span id="6"></span><span id="7"></span><span id="8"></span><span id="9"></span>
</body>
</html>
У вас не должно быть более одного элемента с тем же идентификатором на странице. Идентификаторы должны быть уникальными. Я бы вместо этого дал элементам определенный класс, а затем использовал 'querySelector' –
Ошибка означает, что вы пытаетесь найти элемент с идентификатором, который не существует. Не знаете, что вы ожидаете от нас? –
Можете ли вы дать нам свой HTML-код? – shadowfox