Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Обращение к элементам с неизвестным id (https://javascript.ru/forum/events/30349-obrashhenie-k-ehlementam-s-neizvestnym-id.html)

gJam 01.08.2012 13:36

Обращение к элементам с неизвестным id
 
Есть n-eлементов..
Но все имеют префикс (к примеру: elem_ и дальше цифра(ы) ) и соотв. порядковое число, которое неизвестно, как обратиться ко всем элементам в цикле имеющим этот префикс?
Примеры "наборов" id

elem_12312
elem_433634
..

Deff 01.08.2012 13:39

gJam,
В jQuery $("div[id^='elem_ ']")
В JS - парсить страницу по данному тегу и смотреть атрибут id

gJam 01.08.2012 13:41

Цитата:

Сообщение от Deff (Сообщение 193609)
gJam,
В jQuery $("div[id^='elem_ ']")
В JS - парсить страницу по данному тегу и смотреть атрибут id

Про вариант ручного парсинга можно чуть подробней? (я знаю в каком блоке находятся все елементы для поиска)

Deff 01.08.2012 13:44

gJam,
Нарисуйте сокращенный кусок HTML кода с известным обрамлением и парой - тройкой поисковых тегов

gJam 01.08.2012 13:50

Цитата:

Сообщение от Deff (Сообщение 193611)
gJam,
Нарисуйте сокращенный кусок HTML кода с известным обрамлением и парой - тройкой поисковых тегов

<div id='elem_container'>
   <div id='elem_14'>
      <div class='bla_bla_bla'>
        <div .... ></div>
      </div>
   </div>
   <div id='elem_674564564'>
      <div class='bla_bla_bla'>
        <div .... ></div>
      </div>
   </div>
   <div id='elem_086757'>
      <div class='bla_bla_bla'>
        <div .... ></div>
      </div>
   </div>

</div>

Вот один из вариантов, где <div ...></div> - n-кол-во вложенных блоков (точно не уточняется, но вскоре будет известно точно, пока ориентировочно 4 блока)

Deff 01.08.2012 15:16

<div id='elem_container'>
   <div id='elem_14'>
      <div class='bla_bla_bla'>1
        <div .... ></div>
      </div>
   </div>
   <div id='elem_674564564'>2
      <div class='bla_bla_bla'>
        <div .... ></div>
      </div>
   </div>
   <div id='elem_086757'>3
      <div class='bla_bla_bla'>
        <div .... ></div>
      </div>
   </div>

</div>

<script type="text/javascript">
var StDoc = document.getElementById('elem_container');//alert(StDoc.innerHTML)
var FndDivs = StDoc.getElementsByTagName('div')
var FindId = 'elem_';
var Length = FndDivs.length;
var MyArray = [];

for(i=0; i<Length; i++){
  if(FndDivs[i].id.indexOf(FindId)) continue;
  MyArray.push(FndDivs[i])
}
MyArray[1].style.background='red'
alert(MyArray[1].style.background)

</script>

gJam 01.08.2012 15:28

Спасибо.

Deff 01.08.2012 16:30

gJam,
Поправил для работы с элементами массива

gJam 01.08.2012 16:33

Спасибо.

dmitriymar 01.08.2012 19:29

Цитата:

Сообщение от Deff
В JS - парсить страницу по данному тегу и смотреть атрибут id

Цитата:

Сообщение от Deff
01 <div id='elem_container'>
02 <div id='elem_14'>
03 <div class='bla_bla_bla'>1
04 <div .... ></div>
05 </div>
06 </div>
07 <div id='elem_674564564'>2
08 <div class='bla_bla_bla'>
09 <div .... ></div>
10 </div>
11 </div>
12 <div id='elem_086757'>3
13 <div class='bla_bla_bla'>
14 <div .... ></div>
15 </div>
16 </div>
17
18 </div>
19
20 <script type="text/javascript">
21 var StDoc = document.getElementById('elem_container');//alert(StDoc.innerHTML)
22 var FndDivs = StDoc.getElementsByTagName('div')
23 var FindId = 'elem_';
24 var Length = FndDivs.length;
25 var MyArray = [];
26
27 for(i=0; i<Length; i++){
28 if(FndDivs[i].id.indexOf(FindId)) continue;
29 MyArray.push(FndDivs[i])
30 }
31 MyArray[1].style.background='red'
32 alert(MyArray[1].style.background)
33
34 </script>

опять говнокод...

http://javascript.ru/blog/subzey/que...orAll-praktike


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