Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.12.2014, 23:10
Интересующийся
Отправить личное сообщение для Tsamsiyu Посмотреть профиль Найти все сообщения от Tsamsiyu
 
Регистрация: 26.09.2014
Сообщений: 19

Является ли элемент дочерним.
Здравствуйте, господа, небольшой вопрос.

Допустим я имею 2 элемента и допустим нужно узнать является ли первый элемент дочерним второго или же второй является родительским первого.

Сейчас я написал функцию, которая делает эту проверку рекурсивно, обходя все дом-элементы, но хотелось бы узнать нет ли в js встроенной возможности для этой проверки, ведь вопрос достаточно стандартный.
Ответить с цитированием
  #2 (permalink)  
Старый 31.12.2014, 23:32
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

https://developer.mozilla.org/ru/doc.../Node.contains
Ответить с цитированием
  #3 (permalink)  
Старый 01.01.2015, 18:29
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

if (element1.parentNode === element2)
    ...
else if (element2.parentNode === element1)
    ...
else
    ...
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 02.01.2015, 21:43
Интересующийся
Отправить личное сообщение для Tsamsiyu Посмотреть профиль Найти все сообщения от Tsamsiyu
 
Регистрация: 26.09.2014
Сообщений: 19

Разница между готовым методом и рекурсией.
А есть ли вообще разница, использовать рекурсию или готовую функцию, ну т.е. небольшой оффтоп, я к тому, что нативные методы getElement или querySelector не таким же образом действуют? Разница в скорости выполнения будет большая? (относительно не только этой ситуации).
Ответить с цитированием
  #5 (permalink)  
Старый 02.01.2015, 22:56
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Откуда у тебя рекурсия? Покажи код.
Сообщение от Tsamsiyu
Разница в скорости выполнения будет большая?
Абсолютная - ничтожная.
А вот в относительном выражении - разница может быть десятикратной и более. Показывай код сравним.
В любом случае тут не на скорость ориентироваться надо.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 02.01.2015, 23:30
Интересующийся
Отправить личное сообщение для Tsamsiyu Посмотреть профиль Найти все сообщения от Tsamsiyu
 
Регистрация: 26.09.2014
Сообщений: 19

Поиск ближайшего родительского элемента.
Я же написал, небольшой оффтоп, но тема та же.
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);
		}
	};

Последний раз редактировалось Tsamsiyu, 02.01.2015 в 23:33.
Ответить с цитированием
  #7 (permalink)  
Старый 02.01.2015, 23:42
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Не пойму, чем метод contains не угодил?
Работает везде.
В старых версиях фаерфокса не было, но можно заполифилить Как узнать содержит ли DOM определенный элемент
Ответить с цитированием
  #8 (permalink)  
Старый 03.01.2015, 02:08
Интересующийся
Отправить личное сообщение для Tsamsiyu Посмотреть профиль Найти все сообщения от Tsamsiyu
 
Регистрация: 26.09.2014
Сообщений: 19

Является ли элемент дочерним.
Да угодил, угодил. В этом то и смысл поста был, я о нем не знал. Просто интересно узнать отличие. А вообще тему можно закрывать, всем спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение при клике на элемент haacki jQuery 2 16.03.2014 13:56
Выбрать элемент у родителя которого сын это элемент по которому кликнули MalikSPB Events/DOM/Window 8 30.12.2012 11:22
Вытеснить элемент из потока Isaac (X)HTML/CSS 5 13.04.2012 15:14
Drag-n-Drop - перетянуть элемент Jugo ExtJS 1 10.08.2011 19:10
Как передать элемент в переменную из функции kichSman jQuery 3 12.07.2011 22:16