Поскольку функция jQuery .parent(selector)
проверяет только непосредственный родитель, вы можете создать такую функцию:
function getParent(o, tag) {
if (o.parentNode.tagName.toLowerCase() == tag.toLowerCase()) {
return(o.parentNode);
} else {
return(null);
}
}
Затем вы можете просто вызвать это:
getParent(this, 'p');
Или, если вы хотите, чтобы он возвращал массив, аналогичный тому, как это делает jQuery, вы должны использовать это:
function getParent(o, tag) {
var results = [];
if (o.parentNode.tagName.toLowerCase() == tag.toLowerCase()) {
results.push(o.parentNode);
}
return(results);
}
Затем вы можете просто вызвать это (и получить массив обратно):
getParent(this, 'p');
Если вам нужен эквивалент функции jQuery .parents(selector)
, которая возвращает всех предков, соответствующих типу тега, вы должны использовать это:
function getParents(o, tag) {
var results = [];
while ((o = o.parentNode) && o.tagName) {
if (o.tagName.toLowerCase() == tag.toLowerCase()) {
results.push(o);
}
}
return(results);
}
И выназвал бы это так:
getParents(this, 'p');