Является ли элемент дочерним.
Здравствуйте, господа, небольшой вопрос.
Допустим я имею 2 элемента и допустим нужно узнать является ли первый элемент дочерним второго или же второй является родительским первого. Сейчас я написал функцию, которая делает эту проверку рекурсивно, обходя все дом-элементы, но хотелось бы узнать нет ли в js встроенной возможности для этой проверки, ведь вопрос достаточно стандартный. |
|
if (element1.parentNode === element2) ... else if (element2.parentNode === element1) ... else ... |
Разница между готовым методом и рекурсией.
А есть ли вообще разница, использовать рекурсию или готовую функцию, ну т.е. небольшой оффтоп, я к тому, что нативные методы getElement или querySelector не таким же образом действуют? Разница в скорости выполнения будет большая? (относительно не только этой ситуации).
|
Откуда у тебя рекурсия? Покажи код.
Цитата:
А вот в относительном выражении - разница может быть десятикратной и более. Показывай код сравним. В любом случае тут не на скорость ориентироваться надо. |
Поиск ближайшего родительского элемента.
Я же написал, небольшой оффтоп, но тема та же.
1) есть элемент А. 2) выше его есть элементы B, нужно найти ближайшего родителя, т.е. пошел от обратного - проверяю не то, что A является дочерним B, а начиная от элемента A ищу ближайшего родителя B. var _searchNsAttr = function (element, attribute) { if (element == document.body) { return false; } var attrName = element.getAttribute('data-ns-' + attribute); if (!!attrName) { return attrName; } else { return _searchNsAttr(element.parentNode, attribute); } }; |
Не пойму, чем метод contains не угодил?
Работает везде. В старых версиях фаерфокса не было, но можно заполифилить http://javascript.ru/forum/events/81...html#post47416 |
Является ли элемент дочерним.
Да угодил, угодил. В этом то и смысл поста был, я о нем не знал. Просто интересно узнать отличие. А вообще тему можно закрывать, всем спасибо.
|
Часовой пояс GMT +3, время: 20:58. |