Проблемы .innerHTML, хранящие его в переменной - PullRequest
0 голосов
/ 24 августа 2011

Вот мой код, который не работает - спасибо, ребята - первый вопрос!

<html>
<head>
<script type="text/javascript">
var x =document.getElementById("myElementId").innerHTML;


</script>

</head>

<body>
<div id="myElementId">24</div>
<div>

<script type="text/javascript">
if (x < 25) {
document.write("worked")
}
else {
document.write("didn't work")
}
</script>

Также извините за обновление, но вы, ребята, имеете представление о том, как это сделать, когда div находится в iframe, который находится не в том же домене? Спасибо

Ответы [ 4 ]

1 голос
/ 24 августа 2011

Эта строка

var x = document.getElementById("myElementId").innerHTML;

выполняется до того, как элемент с идентификатором myElementId существует, поэтому JavaScript не может его найти (getElementById возвращает null).

Поместите его после элемента:

<div id="myElementId">24</div>
<script>
    var x = document.getElementById("myElementId").innerHTML;
</script>

Документ HTML обрабатывается сверху вниз.

1 голос
/ 24 августа 2011

Вы запускаете эту строку:

var x =document.getElementById("myElementId").innerHTML;

до того, как элемент существует.Уберите скрипт с головы и поставьте эту строку прямо перед:

if(x < 25) {

Вместо.

0 голосов
/ 24 августа 2011

измените его на:

<html>
<head>


</head>

<body>
<div id="myElementId">24</div>
<div>

<script type="text/javascript">
var x =document.getElementById("myElementId").innerHTML;
if (x < 25) {
document.write("worked")
}
else {
document.write("didn't work")
}
</script>

элемент, который вы пытаетесь найти, даже не существует на странице при запуске сценария, поэтому вы столкнулись с этой проблемой ..

0 голосов
/ 24 августа 2011

В дополнение к первому созданию элемента,

Я полагаю, что innerHtml возвращает строковое значение Сначала попробуйте проанализировать его;

var value  = document.getElementById("myElementId").innerHTML;
var x   = parseInt(value,10)
...