Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.10.2011, 12:57
Аспирант
Отправить личное сообщение для aRpi Посмотреть профиль Найти все сообщения от aRpi
 
Регистрация: 17.04.2011
Сообщений: 37

Как получит ссылку на элемент внутри которого запустили JS код?
Здравствуйте! Не знаете?
Как получить элемент внутри которого был запущен JS код?
Например:

<div>
<script type="text/javascript">
как отсюда получить ссылку на внешний div, внутри которого мы собственно запустили этот код?
</script>
</div>
Ответить с цитированием
  #2 (permalink)  
Старый 01.10.2011, 13:09
Интересующийся
Отправить личное сообщение для Elergy Посмотреть профиль Найти все сообщения от Elergy
 
Регистрация: 10.09.2011
Сообщений: 16

вообще, по-моему, никак. окно, в котором он запущен, он еще знает а вот див.. хм.

Опиши задачу, из-за который ты такой лапшекод городишь? вполне вероятно, что можно обойтись и без таких приемов.
Ответить с цитированием
  #3 (permalink)  
Старый 01.10.2011, 13:20
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Подозреваю ОП хочет реализовать такой механизм:
- есть некий блок html, следом за ним идет код js
- требуется применить в этом js некоторые действия непосредственно к предшествующему блоку
- таких связок может быть несколько на странице и действия внутри каждой из этих связов могут отличаться в зависимости от сгенерированного js.

Если закача такая, то как решение могу предложить поиск по имеющемуся DOM в обратном направлении, первый найденный блок html будет тот, что предшествует исполняемому в данный момент js-коду.
Ответить с цитированием
  #4 (permalink)  
Старый 01.10.2011, 13:26
Интересующийся
Отправить личное сообщение для Elergy Посмотреть профиль Найти все сообщения от Elergy
 
Регистрация: 10.09.2011
Сообщений: 16

если Js-код генерится, то что мешает генерить туда же айдишник предшествующего элемента? опять же, задачу в студию)
Ответить с цитированием
  #5 (permalink)  
Старый 01.10.2011, 13:28
Аспирант
Отправить личное сообщение для aRpi Посмотреть профиль Найти все сообщения от aRpi
 
Регистрация: 17.04.2011
Сообщений: 37

Хочу вызвав JS функцию создать свой элемент, расположенный в том же самом месте что и JS код, подобно writeln, только через DOM создавать буду.
Ответить с цитированием
  #6 (permalink)  
Старый 01.10.2011, 13:29
Аспирант
Отправить личное сообщение для aRpi Посмотреть профиль Найти все сообщения от aRpi
 
Регистрация: 17.04.2011
Сообщений: 37

Хочу без id обойтись
Ответить с цитированием
  #7 (permalink)  
Старый 01.10.2011, 16:12
Аватар для kyivprogs
Интересующийся
Отправить личное сообщение для kyivprogs Посмотреть профиль Найти все сообщения от kyivprogs
 
Регистрация: 25.04.2011
Сообщений: 25

конечно, не знаю канает ли такое ну вроди бы должно канать:
document.div[0] где 0-это начальный масив элемента див... в отм случи если у тебя 1 див если код размещен во втором то будет 1 вместо 0
Ответить с цитированием
  #8 (permalink)  
Старый 01.10.2011, 16:31
Новичок на форуме
Отправить личное сообщение для Winston Посмотреть профиль Найти все сообщения от Winston
 
Регистрация: 01.10.2011
Сообщений: 3

В каждом блоке <script> делать переменную с порядковым номером.
И при вызове определенного участка кода будет соответственно и переменная-айдишник будет инициализироватся, и в зависимости от значения этой переменной применять какие-то действия к блокам...
Вот как-то так
Ответить с цитированием
  #9 (permalink)  
Старый 01.10.2011, 18:22
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

напишите примеры, показывающие на коде то, о чём вы говорите.

я думаю, что можно так

скрипт.

это находится сверху, потому что эта коллекция - живая. (если на страницу добавим скрипт - он сам тут появится)
// все скрипты на странице
        var scripts = document.getElementsByTagName("script");

а это - внутри каждого DIV
// наш div.
        var div; 
  
        // очевидно, что именно ЭТОТ скрипт будет последним.
        var script = scripts[ scripts.length-1 ];
        
        //относительно ЭТОГО скрипта ищем близлежащий div,
        // который будет РОДИТЕЛЕМ для этого скрипта
        div=script;
        //поднимаемся до DIV
        while( div.tagName!=="DIV" ) 
            div=div.parentNode;
        
        //div нашли. теперь деаем с ним, чо хотим
        div.onclick=function(){
            this.parentNode.removeChild(this);
        }



ну и пример, конечно же.
<h1>При клике на DIV они будут скрываться</h1>

<script>
    var scripts = document.getElementsByTagName("script");
</script>

<div>
    Это дивчег первый.
    <script>
        // наш div.
        var div; 
        
        // очевидно, что он будет последним.
        var script = scripts[ scripts.length-1 ];
        
        //относительно ЭТОГО скрипта ищем близлежащий div,
        // который будет РОДИТЕЛЕМ для этого скрипта
        div=script;
        //поднимаемся до DIV
        while( div.tagName!=="DIV" ) 
            div=div.parentNode;
        
        //div нашли. теперь деаем с ним, чо хотим
        div.onclick=function(){
            this.parentNode.removeChild(this);
        }
    </script>
</div>

<div>
    Это дивчег второй.
    <script>
        // наш div.
        var div; 
        
        // очевидно, что он будет последним.
        var script = scripts[ scripts.length-1 ];
        
        //относительно ЭТОГО скрипта ищем близлежащий div,
        // который будет РОДИТЕЛЕМ для этого скрипта
        div=script;
        //поднимаемся до DIV
        while( div.tagName!=="DIV" ) 
            div=div.parentNode;
        
        //div нашли. теперь деаем с ним, чо хотим
        div.onclick=function(){
            this.parentNode.removeChild(this);
        }
    </script>
</div>

Последний раз редактировалось melky, 01.10.2011 в 21:46. Причина: немного оптимизировал
Ответить с цитированием
  #10 (permalink)  
Старый 01.10.2011, 21:45
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Самое правильное тут document.write, он для этого и придуман.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
onclick, this Как корректно получить ссылку на текущий элемент вызова. abstract Events/DOM/Window 2 25.07.2017 12:18
Как зашифровать внешнюю ссылку в js ? mav1 Общие вопросы Javascript 2 13.11.2010 12:32
Как проиндексировать картинки HTML код которых генерируется на JS greatilya Оффтопик 9 22.09.2010 07:42
Как правильно прописать свой код в .js Всеми_Любимый Элементы интерфейса 6 23.02.2010 21:34
как привязать ссылку с Html страницы на вынесенный в отдельную папку js скрипт? TIIIMOXAN Общие вопросы Javascript 2 09.11.2009 19:23