Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как получить id??? (https://javascript.ru/forum/misc/34311-kak-poluchit-id.html)

a631s 28.12.2012 21:39

как получить id???
 
фрагмент кода

<div class = "wrapper">
<div class = "inner"> 123 </div>
<div class = "inner"> 123 </div>
..............
<div class = "inner"> 123 </div>
</div>

дивы "inner" имеют свое наполнение, добавляются JS (jQuery), в общем не важно чем....

как можно получить ID дива "inner"?

Интересует подсказка-совет в какую сторону копать, чтоб найти правильный ответ:-?

Deff 28.12.2012 22:02

Цитата:

Сообщение от a631s
как можно получить ID дива "inner"?

Не вижу ID в HTML коде для div.inne
Обратицо по порядковому номеру к любому div в обертке div.wrapper можно так
$("div.wrapper > div.inner").eq(N); //N - номер элемента от 0
var Len = $("div.wrapper > div.inner").length; //кол-во элементов

a631s 28.12.2012 22:41

Спасибо за ответ, но не то. Наверное криво вопрос задал.
По тому-же коду (#1) div.inner добавляется динамический, ID нельзя при добавлении приписать.
Где-то в DOM есть какой-то внутренний ID для этого элемента?
Если есть - как к нему добраться (узнать этот "служебный" ID)?
Конструкции типо $(this).closest("tr").find('th').eq(3) сносят крышу, но работают:blink:

lord2kim 28.12.2012 22:46

a631s, вам Deff все правильно написал
как вы говорите
Цитата:

Сообщение от a631s (Сообщение 224111)
Где-то в DOM есть какой-то внутренний ID для этого элемента?

нету...есть порядковый номер в DOM (getElementsByTagName, getElementsByClassName)

koeshiro 29.12.2012 13:48

a631s,
Есть парядковая номерация. Её делать надо самому. Например:
var x=document.getElementById('id нужного элемента в котором идёт поиск и нумерация элементов');
var z=x.getElementsByTagName("*").length;
:blink:

skfyann 29.12.2012 14:30

Цитата:

Сообщение от a631s (Сообщение 224111)
ID нельзя при добавлении приписать.

А почему нельзя?

koeshiro 29.12.2012 14:35

Цитата:

Сообщение от skfyann (Сообщение 224204)
А почему нельзя?

Попробуйте узнаете ;)

Deff 29.12.2012 14:44

Добавляем ID
<script src="http://code.jquery.com/jquery-latest.js"></script>

<div class = "wrapper">
 <div class = "inner"> 123 </div>
 <div class = "inner"> 123 </div>
 ..............
 <div class = "inner"> 123 </div>
 </div>

<script type="text/javascript">
$("div.wrapper > div.inner").each(function(i){
  $(this).attr('id','NewId_'+i);
});
alert($("div.wrapper").html());
</script>

skfyann 29.12.2012 14:56

Цитата:

Сообщение от koeshiro (Сообщение 224205)
Попробуйте узнаете ;)

function IdGen(){
    id = 0;
    this.next = function(){
        return ("id_" + id++);
    }
    return this;
}
var gen = IdGen();

var div = document.createElement("div");
div.id = gen.next();

Как-то так, не?

koeshiro 29.12.2012 15:08

skfyann, мне кажется или функция вызывается всего раз?
http://javascript.ru/basic/syntax-switch-for#while больше подайдёт.
Определяем количество элементов
var x=document.getElementById('id нужного элемента');
var z=x.getElementsByTagName("*").length;

3апускаем
var i=0;
while(i<z) {\\Создаём элемент. Присваеваем id.
i++;
var div = '<div ';
div+='id=" + i + "';
div+='></div>'
}

Как то так. На счёт правописания честно . . . не уверен. Но что-то в этом духе.


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