2015-07-18 3 views
-1

Что-то странное происходит здесь.document.getElementById возвращает null на dynaimcally created div

Мой сайт использует javascript для создания динамических divs, но хотя они введены в DOM (по крайней мере, это то, что я думаю), javascript возвращает null при вызове этого div.


Это javscript код, который загружен до </body>

function AddPlayer(){ 
    var name = document.getElementById('name').value; 
    createBox(name); 
}; 

function createBox(name){ 
    var span = document.createElement('span'); 
     span.id = name; 
     span.innerHTML = name; 
     document.getElementById("gameArea").appendChild(span); 

    var span = document.createElement('span'); 
     span.id = "score-" + name; 
     span.innerHTML = "0"; 
     document.getElementById("gameArea").appendChild(span); 

    var inputSText = document.createElement('input'); 
     inputSText.type = "button"; 
     inputSText.value = "Add Points"; 
     inputSText.onclick = function(){AddPoints(name);}; 
     document.getElementById("gameArea").appendChild(inputSText); 
}; 

function AddPoints(player){ 
    document.load(document.getElementById("#score-"+ player).innerHTML = "Please work"); 
}; 
<html> 
<head> 
    <title>Game Score Keeper</title> 
</head> 
<body> 
    <h2>Game Score Keeper</h2> 
    <input type="text" id="name" /> 
    <input type="button" value="Add Player" onclick="AddPlayer()" /> 

    <div id="gameArea"> 

    </div> 
    <script src="index.js"></script> 
</body> 
</html> 


Вот jsfiddle этого проекта http://jsfiddle.net/jwmm6rk7/

ответ

0

Вам необходимо передать идентификатор элемента document.getElementById. То есть, без символа хеша (#).

function AddPoints(player) { 
    document.load(document.getElementById("score-" + player).innerHTML = "HELLO"); 
}; 
+0

Bro спасибо! Это была какая-то действительно ошибка. Забавно, как я этого не заметил. Еще раз спасибо. – Julind

+0

выглядит как пользователь jQuery – vinayakj

+0

Nope. Эта вещь document.load(), которую я использовал, заключалась в том, чтобы проверить, может быть, используя это, идентификатор будет получен, и я не знал, что это связано с jQuery. Все еще получаю истинное зависание javascript. – Julind

0

lookslike вы пользователь JQuery, вы использовали # и name вместо player

function AddPoints(player) { 
    document.getElementById("score-" + player).innerHTML = "HELLO"; 
}; 
+1

Да. Я честно заметил, что другая ошибка после того, как я опубликовал этот вопрос. Это была последняя часть, и это было сделано в 3 часа ночи, когда я устал и не заметил этого. – Julind

Смежные вопросы