Mootools: пройти this.getParent () x количество раз до определенного элемента - PullRequest
1 голос
/ 23 марта 2012

Следующая разметка преувеличена, чтобы продемонстрировать проблему.

Я пытаюсь захватить основной ряд нажатой ссылки ... просто так получилось, что она скрыта в куче других вещей.

<div class="mainRow">
...
</div>
<div class="mainRow">
    <div>
        <div>
            <div>(x number of layers)
                <div>
                    <div>
                        <div>
                            <div>
                                <div>
                                    <div>
                                        <a class="someLink">click me</a>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>(/x number of layers)
        </div>
    </div>
</div>
<div class="mainRow">
...
</div>

В mootools * вы можете вручную получить этот родительский элемент, сказав .getParent().getParent()...<xTimes>...getParent() etc

Есть ли способ произвольно пересечь цепочку родителей х раз, сколько раз , чтобы она остановилась на div.mainRow?

( Редактировать : lol ... извините всех, я думаю, я написал "jquery" в моем вопросе по ошибке. Я спрашиваю о mootools.)

1 Ответ

2 голосов
/ 26 марта 2012

родительский обход прост в mootools.

в вашем случае метод getParent([optional selector]) попытается сопоставить любой родительский узел: http://mootools.net/docs/core/Element/Element#Element:getParent - поэтому .getParent("div.mainrow") вернет первое совпадение или ноль - если ничего не найдено.

Вы также можете использовать селектор обратного комбинатора время от времени, но не при событии щелчка, вероятно.

Например, document.getElements("div.mainRow a.someLink ! div.mainRow") будет возвращать только элементы div.mainRow, которые имеют ссылку непосредственно с классом "someLink". таким образом, как .contains(), но вы также можете вернуть родительский элемент a, просто добавив ! div

...