Является ли элемент дочерним.
Здравствуйте, господа, небольшой вопрос.
Допустим я имею 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, время: 11:48. |