Есть ли способ получить доступ к родительскому объекту dom из дочернего элемента? - PullRequest
1 голос
/ 04 марта 2010

У меня есть простой DOM-код, подобный следующему

<div>
    <div>
    </div>
</div>

Я хочу установить цвет фона внешнего элемента, используя только один элемент. Является ли это возможным? Вопрос может быть немного сумасшедшим. Но у меня есть веская причина спросить это. Я работаю над фреймворком, в котором HTML-код генерируется динамически, и я едва контролирую его. Но я могу поставить внутренние элементы. В приведенном выше примере внешний div будет из моего сгенерированного кода, и я хочу изменить цвет фона, я не могу сделать это напрямую. Поэтому я хочу сделать это с помощью дочернего элемента div.

Что-то вроде childDiv.parent.background-color = blue.

Это возможно? Или подобная реализация была бы огромной помощью!

Ответы [ 3 ]

3 голосов
/ 04 марта 2010

В этой статье объясняется, как просматривать дерево DOM.

Возможно, вы заинтересованы в атрибуте parentNode.

1 голос
/ 04 марта 2010
<div>
    <div>

    </div>
</div>

childDiv.parentNode.style.backgroundColor = "синий";

0 голосов
/ 04 марта 2010

Относительная манипуляция с DOM - это отличный материал, который стоит изучить.

Фреймворки JavaScript делают это действительно легко. Например (используя Prototype ): ( jQuery имеет аналогичные действия)

<div>
<a href="javascript://" onclick="$(this).up().style.backgroundColor='blue'">Make it blue</a>
</div>

Затем вы можете делать такие вещи, как:

$(this).up(2) - подняться на два уровня

$(this).down()
$(this).next()
$(this).previous

или даже:

$(this).up('.someclass') - идет вверх по дереву, пока не найдет первый элемент с классом "someClass"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...