|
|
|
nextSibling не работает c TR в IE11
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Раньше в IE6 применялось свойство nextSibling, которое теперь в IE11 почему-то не работает. Прошу помощи, в скриптах нуб. Применялся он для перехода к следующему ряду таблицы, в котором разворачивалась подчиненная таблица. При клике на иконке подчиненная таблица показывается или скрывается. Это обеспечивалось классом "op" (opened) тега table. При смене класса на "cl" он скрывался через { display: none; }. Вот HTML, во втором TR есть иконка, по которой надо перейти к 3-му TR, найти в нем TABLE и поменять "op" на "cl". Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Для перехода от IMG к TABLE использовалось и работало в IE6 такое выражение: Код: javascript 1. В IE11 оно не работает. Проанализировал его с помощью алертов: Код: javascript 1. 2. 3. 4. 5. первый алерт выдает "TR, class the_src_tr", второй выдает: "next_sibling: undefined, class: undefined". Как видно, nextSibling почему-то не работает с TR. (в других отчетах с другими тегами работает) Как в этой ситуации правильно перейти от IMG к TABLE из третьего TR? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 16:57 |
|
||
|
nextSibling не работает c TR в IE11
|
|||
|---|---|---|---|
|
#18+
teo609, Замени на nextElementSibling и проверь на то чтобы это было то что тебе надо (текст, тег, табуляция…). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 17:11 |
|
||
|
nextSibling не работает c TR в IE11
|
|||
|---|---|---|---|
|
#18+
ВадимСА, .nextElementSibling.getElementsByTagName(' TABLE')[0] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 17:18 |
|
||
|
nextSibling не работает c TR в IE11
|
|||
|---|---|---|---|
|
#18+
teo609, поскольку верстка не "плотная" (есть переводы строки или пробелы между тегами), то в новом движке в ИЕ11 между элементами оказываются текстовые поля, как это происходит во всех других браузерах. В данном конкретном случае я бы посоветовал вешать по щелчку какой-нибудь класс (например, "parent-cl") на самый верхний table в приведенной верстке, а видимость устанавливать в CSS Код: css 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 17:25 |
|
||
|
nextSibling не работает c TR в IE11
|
|||
|---|---|---|---|
|
#18+
teo609, можно использовать nextElementSibling. Он поддерживается в IE9+ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 17:46 |
|
||
|
nextSibling не работает c TR в IE11
|
|||
|---|---|---|---|
|
#18+
ВадимСА, ВадимСАЗамени на nextElementSibling и проверь на то чтобы это было то что тебе надо (текст, тег, табуляция…). А как проверить что это тег? имея в виду что Яростный Меч новом движке в ИЕ11 между элементами оказываются текстовые поля, как это происходит во всех других браузерах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 18:06 |
|
||
|
nextSibling не работает c TR в IE11
|
|||
|---|---|---|---|
|
#18+
teo609А как проверить что это тег?смотри у него nodeType у элемента он равен 1, у текстовой ноды 3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 18:10 |
|
||
|
nextSibling не работает c TR в IE11
|
|||
|---|---|---|---|
|
#18+
Яростный Меч, Не надо нечего проверять, я же написал Что надо сделать вторым сообщением___ Вот еще поясняю, в хтмшки у имежки (onclick="openOrCloseSubtable()" поменяй на onclick="f(this)") Напиши функцию function f(a){ var f_a = a.parentNode.parentNode.nextElementSibling.getElementsByTagName('TABLE')[0] alert(f_a.tagName) } Тебе нужен был путь к таблю вот плиз и делай там дальше что угодно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 18:43 |
|
||
|
nextSibling не работает c TR в IE11
|
|||
|---|---|---|---|
|
#18+
ВадимСА, __________________________________ Да моя неправда! В IE надо проверять, вот теперь должно работать!_____________ function nxtElmnt(elem){ var nextElem = elem.nextElementSibling; if (nextElem === undefined) { nextElem = elem.nextSibling; while (nextElem && nextElem.nodeType != 1) { nextElem = nextElem.nextSibling; } } return nextElem; } function f(a){ var f_a = nxtElmnt(a.parentNode.parentNode).getElementsByTagName('TABLE')[0] alert(f_a.tagName) } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 19:06 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38614592&tid=1447198]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 487ms |

| 0 / 0 |
