Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   js внури дива возвращает значение между '<div' и ' >' (https://javascript.ru/forum/events/50882-js-vnuri-diva-vozvrashhaet-znachenie-mezhdu-%27-div%27-i-%27-%27.html)

sovsem-nub 15.10.2014 19:55

js внури дива возвращает значение между '<div' и ' >'
 
помогите нубу

есть дивы вида

<div class="......".... всякая требуха....>
<pre>
<script>  
document.write(" написать , что написано между '<div' ... и '>'   " )

</script>   
</pre>
</div>


как обратиться к диву, в котором написан сам скрипт? (имя дива неизвестно) что-то типа this.div

danik.js 15.10.2014 19:58

Цитата:

Сообщение от sovsem-nub
как обратиться к диву

А ты не можешь ему класс или id добавить?

danik.js 15.10.2014 20:01

Последний элемент в коллекции document.scripts будет твоим скриптом. Далее перебираешь его предков, пока не наткнешься на предка с tagName == 'DIV'. Далее перебираешь его атрибуты и выводишь.

sovsem-nub 15.10.2014 20:14

Цитата:

Сообщение от danik.js (Сообщение 335801)
А ты не можешь ему класс или id добавить?

класс-то я ему могу добавить, только дивов с таким же классом в документе будет очень много (более пятисот). и скрипт не сможет обратиться по имени конкретно к тому диву в котором он написан. Думал, что это как-то можно сделать через outerHTML и this но знаний нет совсем.

terminator-101 15.10.2014 20:35

sovsem-nub,
A id?

sovsem-nub 15.10.2014 20:46

Цитата:

Сообщение от terminator-101 (Сообщение 335812)
sovsem-nub,
A id?

и id тоже могу добавить, только дивов с таким же id тоже будет больше 500

kostyanet 15.10.2014 20:53

Так нумеруйте, id0, id1, ... id499, id9888, затем мощщщная такая JQuery по маске (по реге) вам найдет все div у которых id*

sovsem-nub 15.10.2014 21:06

Цитата:

Сообщение от terminator-101 (Сообщение 335812)
sovsem-nub,
A id?

Цитата:

Сообщение от kostyanet (Сообщение 335819)
Так нумеруйте, id0, id1, ... id499, id9888, затем мощщщная такая JQuery по маске (по реге) вам найдет все div у которых id*

в том то и дело, что не могу их разными делать. Либо скрипт должен сам определять в каком диве он находится или как-то весь html в начале пробегать и все ид по порядку переименовывать на +1 да еще в каждом скрипте обращение к диву переделывать на +1, что совсем как-то топорно.

terminator-101 15.10.2014 21:16

Цитата:

Сообщение от sovsem-nub
только дивов с таким же id тоже будет больше 500

Вообще-то это неправильно. id должен быть у каждого элемента свой.

kostyanet 15.10.2014 21:20

Цитата:

Сообщение от sovsem-nub
Либо скрипт должен сам определять в каком диве он находится

http://stackoverflow.com/questions/4...ecuting-script

danik.js 16.10.2014 04:45

kostyanet, а почему там поголовно getElementsByTagName? Почему не
Цитата:

Сообщение от danik.js
document.scripts

?

danik.js 16.10.2014 04:52

Цитата:

Сообщение от sovsem-nub
класс-то я ему могу добавить, только дивов с таким же классом в документе будет очень много (более пятисот)

Ну если они не вложены - то это вовсе не проблема:

<script>
    function doSomething() {
        var divs = document.querySelectorAll('.script-holder');
        if (divs.length === 0)
            return;
        var currentDiv = divs[divs.length - 1];
        alert(currentDiv.title);
    }
</script>

<div class="script-holder" title="Это первый div. Уникальная месага">
<pre>
<script>doSomething()</script>
</pre>
</div>

<div class="script-holder" title="Это второй div. Уникальная месага">
<pre>
<script>doSomething()</script>
</pre>
</div>

рони 16.10.2014 09:40

danik.js,
:victory:

kostyanet 16.10.2014 13:13

Цитата:

Сообщение от danik.js
Почему не

Там небось какой-то лохматый год.

danik.js 16.10.2014 13:37

Цитата:

Сообщение от kostyanet
Там небось какой-то лохматый год

Дык раньше наоборот чаще юзали подобные коллекции: document.forms, document.images, document.all ( :D ). Это ща ничего не знают кроме $()


Часовой пояс GMT +3, время: 21:38.