Рассмотрите следующий HTML. Если у меня есть ссылка JSON к элементу < кнопку >, как я могу получить ссылку на внешний < тр > элемента в обоих случаяхЕсть ли селектор/метод jQuery, чтобы найти определенный родительский элемент n уровней вверх?
<table id="my-table">
<tr>
<td>
<button>Foo</button>
</td>
<td>
<div>
<button>Bar</button>
</div>
</td>
</tr>
</table>
<script type="text/js">
$('#table button').click(function(){
//$(this).parent().parent() will work for the first row
//$(this).parent().parent().parent() will work for the second row
//is there a selector or some magic json one liner that will climb
//the DOM tree until it hits a TR, or do I have to code this myself
//each time?
//$(this).????
});
</script>
Я знаю, что я мог бы особый случай, каждое условие, но я больше заинтересованный «каким бы глубоким вы ни были, поднимитесь на дерево, пока не найдете решение стиля элемента X». Нечто подобное, но более JQuery как/менее многословным
var climb = function(node, str_rule){
if($(node).is(str_rule)){
return node;
}
else if($(node).is('body')){
return false;
}
else{
return climb(node.parentNode, str_rule);
}
};
Я знаю о методе родительского (выражение), но от того, что я видел это позволяет фильтровать родителей на один уровень вверх и не залезть на дерево, пока вы нашли выражение (я хотел бы пример кода доказывает меня неправильно)
Надеюсь, вы не Я добавил ссылку на документацию. –
Абсолютно, спасибо! Это то, что разрешено «Редактировать чужие сообщения»;) – Seb
Ха, это смешно. Я задавался вопросом, почему Visual jQuery перечислил родительский (expr) дважды; оказывается, я полностью отделял s в конце. –