Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   в IE работает в Opera и FF не работает (https://javascript.ru/forum/misc/3024-v-ie-rabotaet-v-opera-i-ff-ne-rabotaet.html)

Yadooumne! 10.03.2009 22:47

в IE работает в Opera и FF не работает
 
Есть такой отрезок html-кода:

Код:

<div id="cloud">
<p>Некий текст</p>
</div>

Чтобы добраться до текста и впоследствии манипулировать им, пишу так:

var cloudtext = document.getElementById("cloud").firstChild.firstChild;


Это работает в IE, а в опере и в FF пишет - cloudtext = null.

Как писать правильно для них? :help: :wacko:

Onis 10.03.2009 22:48

А чем Вам
var cloudtext = document.getElementById("cloud").firstChild.innerHTML;

не подходит?

Yadooumne! 10.03.2009 22:50

Цитата:

Сообщение от Onis (Сообщение 13972)
А чем Вам
var cloudtext = document.getElementById("cloud").firstChild.innerHTML;

не подходит?

А это вообще не работает :(

Yadooumne! 10.03.2009 22:52

Я вот так использую:
var cloudtext = document.getElementById("cloud").firstChild.firstChild;
if (text==1)       { cloudtext.nodeValue = "Перейти на главную страницу";  }


Onis, не подскажешь?

Onis 10.03.2009 22:58

Пардон, поспешил и всех насмешил.
Так работает везде:
var cloudtext = document.getElementById("cloud").getElementsByTagName("p")[0].innerHTML;

Yadooumne! 10.03.2009 23:13

Onis,
спасибо! )))) блин, так работает )))) и кушает правильное значение, как раз то, что между P ))))

А вот скрипт вообще перестал работать...
showcloud = function(text) {

var cloudtext = document.getElementById("cloud").getElementsByTagName("p")[0].innerHTML;
if (text==1)      { cloudtext = "Перейти на главную страницу";  }
document.getElementById("cloud").style.display="block";


}

hidecloud = function() {
document.getElementById("cloud").style.display="none";
}

Kolyaj 10.03.2009 23:14

Цитата:

Сообщение от Yadooumne!
Как писать правильно для них?

Правильно не использовать firstChild/nextSibling где попало, в них разное в разных браузерах лежит.

Kolyaj 10.03.2009 23:15

Цитата:

Сообщение от Yadooumne!
var cloudtext = document.getElementById("cloud").getElementsByTagName("p")[0].innerHTML; 
if (text==1) { 
    cloudtext = "Перейти на главную страницу"; 
}

А с чего бы этому работать? Чисто логически?

Yadooumne! 10.03.2009 23:15

аааа ))) хотя не, так:

showcloud = function(text) {

var cloudtext = document.getElementById("cloud").getElementsByTagName("p")[0].innerHTML;

if (text==1)      { document.getElementById("cloud").getElementsByTagName("p")[0].innerHTML = "Перейти на главную страницу";  }


}


РАБОТАЕТ!

Yadooumne! 10.03.2009 23:16

Kolyaj,
ну мы ж только учимся )))))


Часовой пояс GMT +3, время: 20:14.