Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.08.2011, 15:01
Аватар для leoHex
Интересующийся
Отправить личное сообщение для leoHex Посмотреть профиль Найти все сообщения от leoHex
 
Регистрация: 17.04.2011
Сообщений: 16

Определение DOM объекта
Здравствуйте, ув. форумчане!
как javascript определить тег объекта?
В смысле, есть dom объект:
<div id="obj">...</div>

...
document.getElementById('obj');
...

Так вот, можно ли определить что это именно div?
Ответить с цитированием
  #2 (permalink)  
Старый 31.08.2011, 16:06
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

document.getElementById("obj").nodeName.toLowerCase() == "div"
Ответить с цитированием
  #3 (permalink)  
Старый 31.08.2011, 16:21
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

document.getElementById("obj").tagName === "DIV"
Ответить с цитированием
  #4 (permalink)  
Старый 31.08.2011, 16:34
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

melky, когда документ отдается как application/xml+xhtml (да это фантастика, но все же), то регистр в имени тегов имеет значение. И при сравнении строки со строкой нет смысла в строгом равенстве.

Последний раз редактировалось Octane, 31.08.2011 в 16:37.
Ответить с цитированием
  #5 (permalink)  
Старый 31.08.2011, 16:42
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Octane Посмотреть сообщение
melky, когда документ отдается как application/xml+xhtml (да это фантастика, но все же), то регистр в имени тегов имеет значение.
это да, я согласен. но приведение строки к lowercase стоит времени.
Сообщение от Octane Посмотреть сообщение
И при сравнении строки со строкой нет смысла в строгом равенстве.
это добавляет уверенности.
Ответить с цитированием
  #6 (permalink)  
Старый 31.08.2011, 16:56
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от melky
это добавляет уверенности
http://javascript.ru/ecma/part11#a-11.9.3
Ответить с цитированием
  #7 (permalink)  
Старый 31.08.2011, 16:59
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

я знаю, как они отличаются друг от друга.

это просто привычка после JavaScript Garden писать строгое равенство, если знаю, что операторы одинаковых типов и приведения не будет.
Ответить с цитированием
  #8 (permalink)  
Старый 01.09.2011, 18:12
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от melky
операторы
операнды*

Сообщение от Octane
И при сравнении строки со строкой нет смысла в строгом равенстве.
А Крокфорд в своей javascript: The Good Parts советует.
Ответить с цитированием
  #9 (permalink)  
Старый 01.09.2011, 18:33
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Ну тут одинаковое количество шагов:

http://javascript.ru/ecma/part11#a-11.9.3
Цитата:
1. Если Тип(x) отличается от Типа(y) - переход на шаг 14.

2. Если Тип(x) равен Undefined - вернуть true.

3. Если Тип(x) равен Null - вернуть true.

4. Если Тип(x) не равен Number - переход на шаг 11.

11. Если Тип(x) равен String - вернуть true, если x и y являются в точности одинаковыми последовательностями символов (имеют одинаковую длину и одинаковые символы в соответствующих позициях). Иначе вернуть false.
http://javascript.ru/ecma/part11#a-11.9.6
Цитата:
1. Если Тип(x) отличается от Типа(y), вернуть false.

2. Если Тип(x) равен Undefined - вернуть true.

3. Если Тип(x) равен Null - вернуть true.

4. Если Тип(x) не равен Number - переход на шаг 11.

11. Если Тип(x) равен String - вернуть true, если x и y являются в точности одинаковыми последовательностями символов (имеют одинаковую длину и одинаковые символы в соответствующих позициях). Иначе вернуть false.
Д. Сошников писал об этом где-то здесь.
Ответить с цитированием
  #10 (permalink)  
Старый 01.09.2011, 20:29
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Octane, в данном случае — да. Но если постоянно использовать ===, то со временем привыкнешь и будешь автоматом набирать его вместо ==, который может не вовремя подвести (вспоминаем про отсутствие транзитивности).
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт вычисления координат объекта banderasantonio197555 Events/DOM/Window 4 16.08.2011 17:37
DOM, определение стиля элементов Maximor17 Общие вопросы Javascript 3 04.11.2010 16:24
Обработка события элемента внутри создавшего его объекта pauluss Общие вопросы Javascript 10 10.09.2010 17:01
импорт объекта в текущий скоп LedVisel Общие вопросы Javascript 4 06.06.2010 00:31
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00