Обращение к потомкам элемента через переменную 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, время: 20:39. |