Получить доступ к родительскому элементу в DOM из <script></script> не по его id.

Kirs

Fireman
Получить доступ к родительскому элементу в DOM из <script></script> не по его id.

Здравствуйте.

Подскажите пожалуйста, кто знает, как возможно (или возможно ли) получить ссылку на родительский элемент из JS блока, без прямого обращения к нему по его id (для абстрагирования от родителя) т.е.:

Код:
<div id="d1">
    <div id="d2">
        <script>
            // Отсюда надо получить ссылку на родительский элемент "d1",
            // но не используя getElementById()...
        </script>
    </div>
</div>
 

BRat

o_0
Kirs
не обращайся к родительскому, обращайся к d2, потом parentNode
 

Kirs

Fireman
BRat
Ну так я же говорю - хочу абстрагироваться от родителя, чтобы не раздавать лишние идентификаторы элементам ( которым они впринцепе не нужны) только для прямого доступа к ним.
 

BRat

o_0
Kirs
хм, ну сделай <script id="script1"> </script>
Получай ссылку на него, и работай уже с ней. Абстрагируешься от html-кода
 

Kirs

Fireman
BRat
Разумно... но в том-то и дело, что приходится раздавать идентификаторы, которые впринципе не нужны. Хочется сделать конструкцию обработки зависимую только от запущеной функции func(); которая обрабатывает обрасть, в которую вставлена нужным алгаритмом, т.е. страница может выглядеть так:
Код:
...
<div><script>func(..);</script></div>
...
<div><script>func(..);</script></div>
...
Сколько не искал, не нашел такого метода (как ссылка "this" в вызове из тэга) для такого случая как у меня.
Надеюсь, что просто плого искал...
 

BRat

o_0
Kirs
хм, ну при таком раскладе - чем document.write не устраивает?
 

neko

tеam neko
проблема высосана из пальца.

> в том-то и дело, что приходится раздавать идентификаторы, которые
> впринципе не нужны.

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

можно конечно отмотать последний элемент из тех что браузер уже успел создать.
но я лично, не стал бы на это полагаться.
 

Kirs

Fireman
BRat
В общем это выход... просто думал что есть элегантнее.

neko
можно конечно отмотать последний элемент из тех что браузер уже успел создать
Не подскажеш, каким методом?

Насчет того,что
проблема высосана из пальца.
Впринципе да, но мне, например удобно пользоваться конструкцией <tag onmouseover="func(this);">...</tag>, где я могу обработать, элемент и его окружения общим для всех алгаритмом. Только сейчас мне понадобилось сделать такую обработку при загрузке этого элемента, а параметра "onload" для элементов, кроме body нет. При XHTML и CSS верстке я пытаюсь таким образом уйти от излишних конструкций, преложив это работу на JS.
 

neko

tеam neko
Не подскажеш, каким методом?
я уже все написал.
что именно непонятно?

например FF создает элементы один за другим и сразу обновляет document.
т.е. самая последняя нода всегда будет содержать твой script.
как там с другими браузерами я незнаю, выясняй сам.
 

alekciy

Новичок
Kirs
Может XPath выражения спасили бы отца русской демократии? Сам сейчас озадачен схожей задачей. Вот чего надумал и думаю до сих пор http://phpclub.ru/talk/showthread.php?s=&postid=677519
 
Сверху