Как получить все родители элементов с помощью jquery?
Как получить все родители элементов с помощью jquery? я хочу сохранить этих родителей в переменной, чтобы я мог использовать позже в качестве селектора.
такие как <div><a><img id="myImg"/></a></div>
GetParents ('myImg'); вернет "div a" что-то вроде этого
5 ответов
/// получить массив всех элементов родителей:
allParents = $("#myElement").parents("*")
/ / / получить вложенный селектор через родителей элемента:
function GetParents(id) {
var parents = $("#" + id).parents("*");
var selector = "";
for (var i = parents.length-1; i >= 0; i--) {
selector += parents[i].tagName + " ";
}
selector += "#" + id;
return selector;
}
GetParents ('myImage') вернет вложенный селектор: HTML BODY DIV a #myImage
обратите внимание, почему вы хотите это, но его повторно использовать в качестве селектора.
вам не нужно захватывать их селекторы, так как вы можете использовать их непосредственно с jQuery впоследствии.
Если вы хотите использовать всех родителей позже, вы можете сделать что-то вроде:
var parents = $("#element").parents();
for(var i = 0; i < parents.length; i++){
$(parents[i]).dosomething();
}
каждый элемент имеет только один реальный родитель. Чтобы получить доступ и сохранить его, напишите следующее:
myParent = $("#myElement").parent();
Если вам нужны родители родители тоже, используйте .родители()
дополнительную информацию смотрите в документации:
вы можете использовать parents () для получения вашего непосредственного родителя и их родителей на дереве. вы также можете передать селектор как arg, чтобы получить только родителей, которые соответствуют определенным критериям. Например:
$('#myelement').parents('[id$=container]')
чтобы получить всех родителей, у которых есть атрибут id, значение которого заканчивается текстом "контейнер"
вы можете получить все теги родителей элемента такой:
var sParents = $('#myImg').parents('*').map(function() {
return this.tagName;
}).get().join(' ');
вы также можете заменить этого.имя тега С это.id например или другие атрибуты