Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Где хранить id (https://javascript.ru/forum/jquery/35698-gde-khranit-id.html)

рони 19.02.2013 17:24

Дзен-трансгуманист,
спасибо

Shitbox2 19.02.2013 21:38

NodeList с поиндексным доступом. Что за зверь такой? А как не хранить id? Каждый пункт меню должен содержать информацию в себе для связи с БД. Пункт может удалить или изменить себя или поменять положение в списке, но связь не должна нарушаться

danik.js 19.02.2013 21:47

<ul>
    <li>Item 0</li>
    <li>Item 1</li>
    <li class="item">Item 2</li>
</ul>
<script>
    var nodeList = document.querySelectorAll('ul li');
    alert( nodeList[1] );

    var item = document.querySelector('.item');
    // приведем NodeList к Array
    var array = Array.prototype.slice.apply(nodeList);
    alert ( array.indexOf(item) );
</script>


для jQuery соответственно это $(el).index();

Deff 19.02.2013 21:49

Shitbox2,
Заготовить массивы элементов для каждого меню
тогда удобнее проставлять классы(или даже тегов достаточно), нет смысла в id,
<ul>
  <li>Контент1
        <li>под-Контент1</li>
  </li>
  <li>Контент2</li>
  <li>Контент3</li>
</ul>

[ li.[Контент1,li.[под-Контент1]], li.[Контент2], li.[Контент3] ]

danik.js 19.02.2013 21:50

Вобще, без толку гадать пока Shitbox2 не объяснит нормально че к чему.

Shitbox2 20.02.2013 01:29

Цитата:

Сообщение от danik.js (Сообщение 235634)
Вобще, без толку гадать пока Shitbox2 не объяснит нормально че к чему.

Как еще объяснить-то? Вот пример, недавно делал: http://tamtakoe.ru/photoalbum/

Загружаете туда фотки (хоть всю папку кидаете), он создает для каждой элемент LI и этому элементу присваивается id-шник строки с картинкой из БД. Фотке можно приписать заголовок, соответственно поле обновляется по этому id, при удалении фотки на сервер так же отправляется запрос с удаляемым id, если поменять миниатюры местами, отправится список всех id в новом порядке. Сейчас id хранятся в $('li').data(). Это вполне удобно, но пустует специально созданный для такого атрибут id

danik.js 20.02.2013 01:58

Цитата:

Сообщение от Shitbox2
но пустует специально созданный для такого атрибут id

По задумке id должен быть уникален в пределах документа. Если так, то можно использовать.

ksa 20.02.2013 09:06

Цитата:

Сообщение от Shitbox2
Каждый пункт меню должен содержать информацию в себе для связи с БД.

Для "связи с БД" можно использовать любой атрибут...

<li idRec='ИД_из_БД'>...</li>

Т.е. не обязательно смешивать ИД записи в БД и ИД ДОМ-элемента...

danik.js 20.02.2013 09:37

Цитата:

Сообщение от ksa
можно использовать любой атрибут

Впринципе можно. Но в таком случае лучше использовать data-* атрибуты.

ksa 20.02.2013 09:43

Цитата:

Сообщение от danik.js
Но в таком случае лучше использовать data-* атрибуты.

Это уже как пожелаешь...:D


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