Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   firefox не умеет работать с соседями смотрите функцию (https://javascript.ru/forum/misc/2297-firefox-ne-umeet-rabotat-s-sosedyami-smotrite-funkciyu.html)

jjvod 03.12.2008 15:17

firefox не умеет работать с соседями смотрите функцию
 
function on(th){

th.style.background='url(/images/site/a.gif)';



	if (th.nextSibling == th.parentNode.lastChild){

	th.nextSibling.innerHTML='<img src="/images/site/67.gif"/>'

	}

	else{



		if (th.nextSibling.nextSibling.className == 'blsdio'){

		th.nextSibling.innerHTML='<img src="/images/site/23.gif"/>'

		}

		else{

		th.nextSibling.innerHTML='<img src="/images/site/33.gif"/>'

		}

	}



		if (th.previousSibling == th.parentNode.innerHTML){

		th.previousSibling.innerHTML='<img src="/images/site/12.gif"/>'

		}

		else{



		if (th.previousSibling.previousSibling.className == 'blsdio'){

		th.previousSibling.innerHTML='<img src="/images/site/23.gif"/>'

		}

		else{

		th.previousSibling.innerHTML='<img src="/images/site/22.gif"/>'

		}

	}

}

ZoNT 03.12.2008 15:23

посмотрел... Нигле не нашёл проверки наличия nextSibling, а ведь потом к его свойствам обращаются... С previousSibling то же самое.

jjvod 03.12.2008 15:34

nextSibling есть previousSibling то же
 
Цитата:

Сообщение от ZoNT (Сообщение 9151)
посмотрел... Нигле не нашёл проверки наличия nextSibling, а ведь потом к его свойствам обращаются... С previousSibling то же самое.

Проблема в том FF их не находит

Octane 03.12.2008 15:53

th - это заголовок в таблице? Для работы с таблицами в DOM предусмотрены специальные методы. А еще nextSibling и previonsSibling выдают не только элементы, но и текстовые узлы, поэтому помимо существования узла, нужно проверять его nodeType.

ZoNT 03.12.2008 15:56

надо просто дом генерить скриптом, тогда точно будешь знать, что там за сосед... :)

jjvod 03.12.2008 16:00

Цитата:

Сообщение от ZoNT (Сообщение 9155)
надо просто дом генерить скриптом, тогда точно будешь знать, что там за сосед... :)

это как

jjvod 03.12.2008 16:02

Цитата:

Сообщение от Octane (Сообщение 9154)
th - это заголовок в таблице? Для работы с таблицами в DOM предусмотрены специальные методы. А еще nextSibling и previonsSibling выдают не только элементы, но и текстовые узлы, поэтому помимо существования узла, нужно проверять его nodeType.

th - это переменная в скрипте если не заметил

ZoNT 03.12.2008 16:13

Цитата:

Сообщение от jjvod
это как

Ну например:
var div=document.createElement('div');
div.id='bla-bla-bla';
div.innerHTML='123';

var div2=document.createElement('div');
div2.id='bla-bla-bla2';
div2.innerHTML='1234';

document.body.appendChild(div);
document.body.appendChild(div2);


Тут точно известно что div и div2 - соседи и между ними ничего больше нет.

jjvod 03.12.2008 16:15

Цитата:

Сообщение от ZoNT (Сообщение 9160)
Ну например:
var div=document.createElement('div');
div.id='bla-bla-bla';
div.innerHTML='123';

var div2=document.createElement('div');
div2.id='bla-bla-bla2';
div2.innerHTML='1234';

document.body.appendChild(div);
document.body.appendChild(div2);


Тут точно известно что div и div2 - соседи и между ними ничего больше нет.

не этот вариант не подходит я работаю с xsl шаблоном и врядли смогу это сделать


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