Какой тип элемента DOM? - PullRequest
39 голосов
/ 24 мая 2011
e.g. if i have this:
<div id='mydiv'>whatever</div>

затем, скажем в jQuery, как я могу узнать, что элемент dom с идентификатором "mydiv" является DIV или является каким-то другим типом элемента.

e.g. 
$('#mydiv').????  ?

Ответы [ 6 ]

54 голосов
/ 24 мая 2011
var type = $('#mydiv')[0].tagName

alert(type);
//displays "DIV"
47 голосов
/ 24 мая 2011

Попробуйте is, который проверяет, соответствует ли что-либо в данном наборе другому селектору:

if( $('#mydiv').is('div') ){
  // it's a div
}

Вы также можете получить тег следующим образом:

$('#mydiv').get(0).tagName // yields: 'DIV'
5 голосов
/ 24 мая 2011
alert($('#mydiv')[0].nodeName);
3 голосов
/ 10 ноября 2015

Функция .prop () - хороший способ сделать это.

// Very jQuery
$('#mydiv').prop('tagName');

// Less jQuery
$('#mydiv')[0].tagName;

Оба дают одинаковый результат.

И, как прокомментировал Арам Кочарян, вы, вероятно, захотите стандартизировать его с помощью .toLowerCase().

1 голос
/ 24 мая 2011
var domElement = $('#mydiv').get(0);
alert(domElement .tagName);

может быть полезным.

1 голос
/ 24 мая 2011

$('#mydiv').get(0).nodeType если вы знаете, что есть только один элемент. Объект селектора может содержать массив объектов.

.get() возвращает массив объектов DOM, индексы параметров. nodeType - это свойство, предоставляемое DOM, которое сообщает тип узла DOM. Обычно в виде строки во всех заглавных буквах IIRC.

ИСПРАВЛЕНИЕ nodeType дает вам INT, соответствующий nodeType. tagName это то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...