Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » HTML, CSS, JavaScript

Встроенные ID элементов

Обсуждение темы Встроенные ID элементов в разделе HTML, CSS, JavaScript, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Все прекрасно знают и умеют обращаться по явно заданному ID элемента черз document.getElementById(...) - но это ток для <... id='...' > и этот ...


Закрытая тема
 
Опции темы
Старый 13.01.2011, 14:45   #1
Все прекрасно знают и умеют обращаться по явно заданному ID элемента черз document.getElementById(...) - но это ток для <... id='...' > и этот ID можно передать в функцию в виде строкового параметра...

А теперь внимание вопрос, существует ли некий НЕЯВНЫЙ ВСТРОЕННЫЙ ID элемента, который можно передать в функцию СТРОКОВЫМ/ЦЕЛОЧИСЛЕННЫМ параметром (НЕ ОБЪЕКТОМ)?


Для примера, где такое может использоваться (пример простейший и я прекрасно понимаю, что в нем можно задать и явно ID, но меня интересует более общий вариант решения):
Код HTML:
<a onClick='JavaScript:onClick(this)'>...</a>
<script>
function onClick(obj)
{
 var ID = УНИКАЛЬНЫЙ_НЕЗАДАННЫЙ_ЯВНО_ID_OBJ;
 setTimeout('Click("'+ID+'")', 5000);
}

function Click(ID)
{
 var obj = ПОЛУЧЕНИЕ_OBJ_ОБЪЕКТА_ПО_ID;
 ну и дальше собственно извращения с этим объектом...
}
</script>
 
Старый 13.01.2011, 14:45
Ссылки
Старый 13.01.2011, 16:36   #2
вы это имели ввиду?

Цитата:
$('div span'); // выбор всех span элементов в элементах div

$('div').find('span'); // выбор всех span элементов в элементах div

$('div > span'); // выбор всех span элементов в элементах div, где span является прямым потомком div'a



$('div, span'); // выбор всех div и span элементов

$('span + img'); // выбор всех img элементов перед которыми идут span элементы
$('span ~ img'); // выбор всех img элементов после первого элемента span
$('#banner').prev(); // выбор предыдущего элемента от найденого
$('#banner').next(); // выбор следующего элемента от найденого
Выбор всех элементов, всех предков, всех потомков

$('*'); // выбор всех элементов
$('p > *'); // выбор всех потомков элементов p
$('p').children(); // --
$('p').parent(); // выбор всех прямых предков элементов p
$('* > p'); // выбор всех предков элементов p (скорей всего Вам не понадобится)
$('p').parents(); // --
$('p').parents('div'); // выбор всех предков элемента p которые есть div (parents принимает в качестве параметра селектор)


$('div:first'); // выбираем первый div в доме
$('div:last'); // выбираем последний div в доме
$('div:not(.red)'); // выбираем div'ы у которых нету класса red
$('div:even'); // выбираем четные div'ы
$('divdd'); // выбираем нечетные div'ы
$('div:eq(N)'); // выбираем div идущим под номером N в DOMe
$('div:gt(N)'); // выбираем div'ы, индекс которых больше чем N в DOMe
$('div:lt(N)'); // выбираем div'ы, индекс которых меньше чем N в DOMe
$(':header'); // выбо заголовоков h1, h2, h3 и т.д.
$('div:animated'); // выбор элементов с активной анимацией

$('div:contains(text)'); // выбираем div'ы содержащие текст
$('div:empty'); // выбираем пустые div'ы
$('div:has(p)'); // выбираем div'ы которые содержат p
$('div.red').filter('.bold') // выбираем div'ы которые содержат класс red и класс bold
$('div:hidden'); // выбираем скрытые div'ы
$('div:visible'); // выбираем видимые div'ы

$("div[id]"); // выбор всех div с атрибутом id
$("div[title='my']"); // выбор всех div с атрибутом title=my
$("div[title!='my']"); // выбор всех div с атрибутом title не равного my
$("div[title^='my']"); // выбор всех div с атрибутом title начинающихся с my
// <div title="myCat">,<div title="myCoffee">, <div title="my...">
$("div[title$='my']"); // выбор всех div с атрибутом title заканчивающихся на my
// <div title="itsmy">,<div title="somy">, <div title="...my">
$("div[title*='my']"); // выбор всех div с атрибутом title содержащим my
// <div title="itsmy">,<div title="myCat">, <div title="its my cat">,<div title="...my...">


$(":text"); // выбор всех input элементов с типом =text
$(":radio"); // выбор всех input элементов с типом =radio
// и так далее
$("input:enabled"); // выбор всех включенных элементов input
$("input:checked"); // выбор всех отмеченных чекбоксов

Последний раз редактировалось vladendark; 13.01.2011 в 16:39..
 
Старый 13.01.2011, 17:02   #3
Нет, использование внешних библиотек, да еще и далеко не самых легких - нунаф =) И к тому же Вы неверно поняли вопрос...
Покумекал и простенько загнал - небольшой костылик, но рабочий и до одури простой...

Код HTML:
getElementId = function(obj)
{
 var pref = 'GlobalPrefix'; // настраиваемо
 var id = '';
 try{
  if(obj.id.length > 0)
   id = obj.id;
  else
  {
   var tmp = new Date().getTime();
   while(document.getElementById(pref+tmp)) tmp++;
   id = pref+tmp; obj.id = id;
  };  
 }catch(e){id = null;};
 return id;
};
Ну и мой пример из первого поста соответственно будет выглядеть так:

Код HTML:
<a onClick='JavaScript:onClick(this)'>...</a>
<script>
function onClick(obj)
{
 setTimeout('Click("'+getElementId(obj)+'")', 5000);
}

function Click(ID)
{
 var obj = document.getElementById(ID);
 ну и дальше собственно извращения с этим объектом...
}
</script>

Собственно говоря и все - если у переданного объекта есть ID, то функа вернет его, если нет, то назначит уникальный и далее по нему можно пользовать стандартную getElementById(...) - может быть кому-то пригодится...

Последний раз редактировалось zuart; 13.01.2011 в 17:04..
 
Старый 14.01.2011, 06:17   #4
Можно вообще без ИД, но решение зависит от конкретной надобности.

В таблицах, формах достаточно одного ИД, чтобы различать их.

Особенно хорошо при больших количествах элементов.
 
Старый 14.01.2011, 13:11   #5
Цитата:
Сообщение от person Посмотреть сообщение
Можно вообще без ИД, но решение зависит от конкретной надобности.
В таблицах, формах достаточно одного ИД, чтобы различать их.

Как написал выше - нужна именно ОБЩНОСТЬ использования, чтобы можно было вызвать такую конструкцию с передачей ЛЮБОГО объекта в любом месте и в любом порядке... независимо от того, имеет ли этот элемент воообще какие-то атрибуты или нет
 
Старый 14.01.2011, 13:11
Закрытая тема


Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тестирование элементов интерфейсов black-rabbit Кальянная 2 22.07.2014 11:45
Позиционирование элементов сайта AspeR HTML, CSS, JavaScript 8 05.08.2012 09:35
форма с неизвестным количеством элементов kostia ASP, Perl, PHP и MySQL 12 18.10.2011 11:57
Порядок загрузки элементов MasMaX HTML, CSS, JavaScript 7 10.03.2006 10:17
Css: расположение элементов KeTal HTML, CSS, JavaScript 4 27.01.2006 03:41


Текущее время: 12:51. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Тарифный план «Lite»
Место: 1000 Мб
Трафик: неограниченный
Панель управления
Заказать ТП «Lite»
Тарифный план «Normal»
Место: 2000 Мб
Трафик: неограниченный
Поддержка скриптов
Заказать ТП «Normal»
Тарифный план «Profy»
Место: 7000 Мб
Трафик: неограниченный
Поддержка скриптов
Заказать ТП «Profy»
Тарифный план «Места хватит!»
Место: 25 ГБ
Трафик: неограниченный
Поддержка SSI, ssh
Заказать ТП «Места хватит!»
Дизайнерский форум