2013-02-23 2 views
0

Я работал над простым кодом javascript, и я не знаю, что он не работает. Скажите, пожалуйста, если вы это выясните.Код Javascript не работает? Скажите, почему

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function displayText(){ 
var xa = document.getElementById('abcd').innerHTML; 
xa+= 'asdf'; 
} 

displayText(); 
</script> 
</head> 
<body> 
<div id="abcd"></div> 
</body> 
</html> 

ответ

0

В то время, когда код запускает тело (включая ваш div), еще не разобран. getElementById('abcd') ничего не нашел в то время.

Либо переместить элемент сценария в конец тела так, что она проходит после тело было проанализировано, или позвоните displayText() функции от onload обработчика.

(А если вы собираетесь новое значение в xa будет отображаться в том же поле, которое вы должны будете записать его обратно к элементу с document.getElementById('abcd').innerHTML = xa.)

5

innerHTML возвращает строку из текущего содержимого элемент, а не указатель на него. Так что используйте вместо этого:

function displayText(){ 
    document.getElementById('abcd').innerHTML += 'asdf'; 
} 

или

function displayText(){ 
    var el = document.getElementById('abcd'); 

    var xa = el.innerHTML; 
    xa += 'asdf'; 

    el.innerHTML = xa; 
} 

Кроме того, вы не можете вызвать функцию, до элемента, который вы ссылаетесь на самом деле создается. Поэтому переместите вызов в нижней части тега тела.

<!-- .... --> 
<script> 
    display(); 
</script> 
</body> 
Смежные вопросы