Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.02.2013, 11:45
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Где хранить id
На сайте несколько меню, которые генерируются скриптом. Например ul.#menu1 и ul.#menu2, у каждого элемента внутри свой айдишник.

Логично было бы хранить их как li.#1, li.#2, ... Но т.к. меню два, то айдишники элементов будут повторяться, чего быть не должно. Поэтому храню как li.data('id',1), li.data('id',2), ...

Насколько плох первый способ (li.#1, li.#2, ...)? Действительно ли так критичен повтор в атрибуте id?
Ответить с цитированием
  #2 (permalink)  
Старый 19.02.2013, 11:50
ffx ffx вне форума
Аспирант
Отправить личное сообщение для ffx Посмотреть профиль Найти все сообщения от ffx
 
Регистрация: 29.09.2008
Сообщений: 48

а почему не class?
Ответить с цитированием
  #3 (permalink)  
Старый 19.02.2013, 12:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Shitbox2, а зачем вам эти как бы id?
Сообщение от Shitbox2
Действительно ли так критичен повтор в атрибуте id
Выборка по id вернет только один элемент с указанным id, причем какой из существующих - в спецификации не определено. И я подозреваю что каждый браузер как хочет так и делает. Не проверял, ибо не вижу необходимости в этом.
Ответить с цитированием
  #4 (permalink)  
Старый 19.02.2013, 12:49
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Shitbox2
Выборка по id вернет только один элемент с указанным id
Давнишние дебаты ЧаВО - часто задаваемые вопросы (faq)
Ответить с цитированием
  #5 (permalink)  
Старый 19.02.2013, 12:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Deff, ты упустил один момент. Вопрос задан в контексте jQuery. А jQuery использует getElementById для селекторов типа #id. А getElementById возвращает только один элемент, причем какой из всех - спецификцией не определено.
Ответить с цитированием
  #6 (permalink)  
Старый 19.02.2013, 14:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Если обернуть каждое меню в div c разными Id,
То достаточно просто обеспечить поиск идентичных Id в контексте данных разных оберток
<script src="http://code.jquery.com/jquery-latest.js"></script>
<div id=Wrp1>
  <ul id=menu>Тут меню 1   </ul>
</div>

<div id=Wrp2>
  <ul id=menu>Тут меню 2  </ul>
</div>

<script type="text/javascript">
var div1=$('#Wrp1');
var div2=$('#Wrp2');
alert($('#menu',div1).text()+'\n'+ $('#menu',div2).text())
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 19.02.2013, 15:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Сообщение от Deff
$('#menu',div1).text()+
и каким боком здесь #menu учавствует?
Ответить с цитированием
  #8 (permalink)  
Старый 19.02.2013, 16:22
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<script src="http://code.jquery.com/jquery-latest.js"></script>
<div id=Wrp1>
  <ul id=menu>Тут меню 1  </ul>
</div>

<div id=Wrp2>
  <span>участвует?</span>
  <ul id=menu>Тут меню 2  <span>и каким боком здесь #menu участвует?</span></ul>
</div>

<script type="text/javascript">
var div1=$('#Wrp1');
var div2=$('#Wrp2');
alert($('#menu',div1).text()+'\n\n'+ $('#menu span',div2).text())
</script>
Ответить с цитированием
  #9 (permalink)  
Старый 19.02.2013, 17:02
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

рони,
Cуть задачи поставить две менюшки с идентичными тегами и разным контентом и по возможности или использовать один скрипт для их работы(к примеру скрытия вкладок) для обоих меню; либо два скрипта, - второй скрипт с минимальными правками:
Пока две версии правки для варианта c двумя скриптами:

поправить все ID во втором скрипте и самом контенте меню:
#menu на #menu-2,

либо обернуть каждое меню в свой div и заменить в скрипте:
"#menu" на "#menu",div2

Последний раз редактировалось Deff, 19.02.2013 в 17:07.
Ответить с цитированием
  #10 (permalink)  
Старый 19.02.2013, 17:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Deff,
Подскажите где про $('#menu',div1) такую выборку прочитать можно?
вот так бы я понял $("#Wrp2 #menu span").text()

Последний раз редактировалось рони, 19.02.2013 в 17:20.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
где находятся настройки? ЙавоСкрибд ExtJS 2 23.01.2013 14:34
Где лучше разместить $(document).ready()? Kotakota jQuery 4 31.10.2012 22:03
Карта города на сайте (где пользователь может указать себя) zebra741258963 Библиотеки/Тулкиты/Фреймворки 0 10.05.2012 03:12
Подскажите, где ошибка? Вып. меню allasan Элементы интерфейса 2 13.03.2012 01:36
Кто где хранит пароли? greatilya Оффтопик 14 07.10.2010 07:40