Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Два элемента с одним АйДи (https://javascript.ru/forum/misc/25364-dva-ehlementa-s-odnim-ajjdi.html)

devote 03.02.2012 10:47

ну многие в цикл засовывают элементы типа:
foreach( $data as $record ) {
    echo '<a id="blahLink" href="'.$record['url'].'">'.$record['name'].'</a>';
}

На первый взгляд всего один... а там уж все от количества записей в массиве зависит.

Kolyaj 03.02.2012 10:57

Цитата:

Сообщение от devote
На первый взгляд всего один...

Если вдруг непонятна моя мысль:

Цитата:

Сообщение от Kolyaj
если элемент на странице один, то ставим ему id, если несколько, то class.

Это очень ошибочное и пагубное правило. Нужно всегда использовать class. Нет ни одной причины использовать id в CSS.

monolithed 03.02.2012 10:59

Цитата:

Сообщение от melky
ниже строчка, которая отражает его поведение.

Я это понял как: все кто хорошо зарабатывают делают работу заведомо хуже.
Цитата:

Сообщение от Kolyaj
Так что он просто мудило.

Не только он, еще браузеры которые не следуют спецификации и дают возможность так делать

devote 03.02.2012 11:03

Цитата:

Сообщение от Kolyaj
Если вдруг непонятна моя мысль:

яж не противоречие твоим словам написал... я описал то как многие поступают... лично я не юзаю ID вообще... только либо в тестах, либо там где срочно нужно достать элемент из JS.

poorking 03.02.2012 11:03

monolithed,
Но валидатор ругнется на дубли id

devote 03.02.2012 11:05

Цитата:

Сообщение от monolithed
Не только он, еще браузеры которые не следуют спецификации и дают возможность так делать

В спецификации это не запрещено, а лишь предупреждено что данный атрибут должен просто идентифицировать элемент отдельно. Но запрета на то что он обязательно(100%) должен быть уникальным не оговаривается.

monolithed 03.02.2012 12:29

Цитата:

Сообщение от devote
В спецификации это не запрещено

Вобщето запрещено, и валидатор w3c выдаст ошибку!

Цитата:

Сообщение от http://www.w3.org/TR/html4/struct/global.html#h-7.5.2
id = name [CS]
This attribute assigns a name to an element. This name must be unique in a document.

class = cdata-list [CS]
This attribute assigns a class name or set of class names to an element. Any number of elements may be assigned the same class name or names. Multiple class names must be separated by white space characters.


devote 03.02.2012 20:13

Цитата:

Сообщение от monolithed
Вобщето запрещено, и валидатор w3c выдаст ошибку!

про валидатор я вкурсе.

мда, а тут ничего подобного не написано:
http://www.w3.org/TR/CSS2/selector.html#id-selectors

да и вообще мне все равно... Есть запрет, нет запрета... Я ими не пользуюсь... А то что браузер не запрещает... То мне скорее было бы интересно а что браузер должен делать? Ну создал я два элема, с одним ИД.. и как поступить браузер должен?

monolithed 03.02.2012 20:22

В CSS спецификации, тоже самое говорится, хотя и несколько другими словами:

Цитата:

Сообщение от http://www.w3.org/TR/CSS2/selector.html#id-selectors
Document languages may contain attributes that are declared to be of type ID. What makes attributes of type ID special is that no two such attributes can have the same value; whatever the document language, an ID attribute can be used to uniquely identify its element.


devote 03.02.2012 20:27

ну я эти слова немного по другому понял... но не как запрет.


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