Обращение к потомкам элемента через переменную this
Используя переменную this можно обращаться к потомкам по индексу - порядку следования.
Например: this.children[1].innerHTML = "....."; Вопрос: Можно ли обратиться к потомку не по индексу, а например по имени тега, классу, значению какого-то атрибута? Не банальным перебором в цикле всех дочерних элементов. !Интересует исключительно возможность без использования библиотеки jquery. |
shurik_shink,
тебе нужны только прямые дочерние элементы, у которых parentNode==this, или допускаются все элементы внутри this (т.е. в том числе потомки дочерних элементов и т.д.)? |
shurik_shink, https://developer.mozilla.org/ru/doc.../querySelector
|
Decode, это не подойдёт.
|
Предлагаю своё расширение:
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"]');
|
для прямых чилдов можно проще:
this.querySelectorAll(":scope>div")
Здесь выбираем дочерние элементы с тегом div, но вместо div можно любой селектор |
Яростный Меч, в IE не поддерживается.
|
Цитата:
|
shurik_shink, это CSS4, с поддержкой не очень, в IE и на мобильных браузерах работать не будет. ;) Для справки.
|
| Часовой пояс GMT +3, время: 05:57. |