Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2015, 15:26
Аспирант
Отправить личное сообщение для shurik_shink Посмотреть профиль Найти все сообщения от shurik_shink
 
Регистрация: 22.05.2015
Сообщений: 35

Обращение к потомкам элемента через переменную this
Используя переменную this можно обращаться к потомкам по индексу - порядку следования.
Например:
this.children[1].innerHTML = ".....";

Вопрос:
Можно ли обратиться к потомку не по индексу, а например по имени тега, классу, значению какого-то атрибута?

Не банальным перебором в цикле всех дочерних элементов.

!Интересует исключительно возможность без использования библиотеки jquery.
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2015, 15:51
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

shurik_shink,
тебе нужны только прямые дочерние элементы, у которых parentNode==this, или допускаются все элементы внутри this (т.е. в том числе потомки дочерних элементов и т.д.)?
Ответить с цитированием
  #3 (permalink)  
Старый 22.12.2015, 15:58
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

shurik_shink, https://developer.mozilla.org/ru/doc.../querySelector
Ответить с цитированием
  #4 (permalink)  
Старый 22.12.2015, 16:44
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Decode, это не подойдёт.
Ответить с цитированием
  #5 (permalink)  
Старый 22.12.2015, 16:55
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Предлагаю своё расширение:

Element.prototype.getChilds: function(selector) {
	var originID = this.id;
	this.id = '___' + Date.now();
	var elements = document.querySelectorAll('#' + this.id + ' > ' + (selector || '*'));
	this.id = originID;
	return elements;
};



element.getChilds('div');

element.getChilds('.foo');

element.getChilds('[foo="bar"]');
Ответить с цитированием
  #6 (permalink)  
Старый 22.12.2015, 18:06
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

для прямых чилдов можно проще:
this.querySelectorAll(":scope>div")


Здесь выбираем дочерние элементы с тегом div, но вместо div можно любой селектор
Ответить с цитированием
  #7 (permalink)  
Старый 22.12.2015, 18:16
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Яростный Меч, в IE не поддерживается.
Ответить с цитированием
  #8 (permalink)  
Старый 22.12.2015, 19:26
Аспирант
Отправить личное сообщение для shurik_shink Посмотреть профиль Найти все сообщения от shurik_shink
 
Регистрация: 22.05.2015
Сообщений: 35

Сообщение от Яростный Меч Посмотреть сообщение
this.querySelectorAll(":scope>div")

Здесь выбираем дочерние элементы с тегом div, но вместо div можно любой селектор
Спасибо, работает
Ответить с цитированием
  #9 (permalink)  
Старый 22.12.2015, 19:46
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

shurik_shink, это CSS4, с поддержкой не очень, в IE и на мобильных браузерах работать не будет. Для справки.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение к объекты не на прямую а через ссылку format1981 Общие вопросы Javascript 5 30.01.2011 01:00
Обращение к функции click по id элемента MCTrane jQuery 4 05.12.2010 18:18
Подгрузка элемента из div через Appendto Vitaly jQuery 5 24.06.2009 10:54
Можно ли как-то условие match() через переменную использовать? Tend Общие вопросы Javascript 1 16.03.2009 18:52
Обращение к именам, полученным через Javascript baal1988 Events/DOM/Window 1 31.08.2008 15:08