Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.09.2009, 13:20
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

tagName upperCase
Свойство элементов tagName содержит имя в верхнем регистре. Верхний регистр описан где-то в стандартах? Если нет, то насколько безопасна запись:
elem.tagName == 'DIV'

по сравнению с:
elem.tagName.toUpperCase() == 'DIV'

?

Последний раз редактировалось Riim, 24.09.2009 в 13:25.
Ответить с цитированием
  #2 (permalink)  
Старый 24.09.2009, 13:34
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Что-то вроде нашел:

http://www.w3.org/TR/2000/WD-DOM-Lev...-one-core.html
Цитата:
tagName has the value "elementExample". Note that this is case-preserving in XML, as are all of the operations of the DOM. The HTML DOM returns the tagName of an HTML element in the canonical uppercase form, regardless of the case in the source HTML document.

http://www.w3.org/TR/2000/CR-DOM-Lev...0307/html.html
Цитата:
The element type names exposed through a property are in uppercase. For example, the body element type name is exposed through the "tagName" property as "BODY".

Все же непонятно, почему часто переводят в какой-то конкретный регистр. В том же PrototypeJs и MooTools вовсю так делают.

Последний раз редактировалось Riim, 24.09.2009 в 13:45.
Ответить с цитированием
  #3 (permalink)  
Старый 24.09.2009, 14:26
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Интересно, зачем вообще tagName для xml, есть же nodeName.
Ответить с цитированием
  #4 (permalink)  
Старый 24.09.2009, 14:42
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Octane
Интересно, зачем вообще tagName для xml, есть же nodeName.
да, есть такое:
Цитата:
nodeName contains all functionalities of tagName, plus a few more. Therefore nodeName is always the better choice.
но это только если его применять к nodeType != 1 , если я точно знаю, что в переменной именно элемент, то tagName === nodeName.
Ответить с цитированием
  #5 (permalink)  
Старый 24.09.2009, 14:48
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Вроде бы ИЕ не всегда хранит tagName в uppercase, ЕМНИП.
Ответить с цитированием
  #6 (permalink)  
Старый 24.09.2009, 15:13
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

e1f, а какая версия IE? Если ниже 6-ой, то можно забыть.
Ответить с цитированием
  #7 (permalink)  
Старый 24.09.2009, 15:18
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

А вот это вопрос, надо гуглить
Ответить с цитированием
  #8 (permalink)  
Старый 26.09.2009, 13:12
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

в общем-то jquery и mootools не рассчитывают на верхний регистр. Но ведь они и могут в разных документах использоваться с разными DOCTYPE или без
Ответить с цитированием
  #9 (permalink)  
Старый 30.09.2009, 13:24
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Решил попробовать, как ведут себя скрипты, когда контент отдается, как application/xhtml+xml. tagName и nodeName, как и ожидалось, начинают возвращать имена в том регистре, в котором они записаны в xhtml-коде. innerHTML и innerText (textContent) остаются работоспособными.


Увидел в документации вот что:
For example, in JavaScript you might do something like:

    ...
    var name=node.name().toLowerCase;
    if ( name == 'table' ) {
       ...
    }

Ошибка? У меня нигде не заработало. Конечно можно сделать, чтобы эта штука заработала, но сомневаюсь что в примере на это расчитывали.

p.s. а IE8 оказывается так и не научился воспринимать application/xhtml+xml, предлагает скачать файл

Последний раз редактировалось Octane, 30.09.2009 в 13:31.
Ответить с цитированием
  #10 (permalink)  
Старый 30.09.2009, 18:04
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Странно, что для HTML браузеры по-разному "видят" имена тегов, когда для XML все возвращяют тег, в том регистре, в котором он записан (создан(?)).
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что за tagName? partyzan Общие вопросы Javascript 1 24.04.2008 21:29