Получить выбранный тип элемента
Я хочу получить тип элемента, который я выбрал с помощью селекторов jQuery.
Разметка:
<select name="a"></select>
<input name="b" type="text" />
<textarea name="c"></textarea>
JavaScript:
var field_names = new Array(
'a',
'b',
'c'
);
for(var i = 0; i < field_names.length; i++) {
var field = $('[name=' + required_fields[i] + ']:visible');
// ?????
// What do I write here to get one of those outputs:
// Element with name a is <select>
// Element with name b is <input>
// Element with name c is <textarea>
alert('Element with name ' + required_fields[i] + ' is ' + element_type);
}
Ответы
Ответ 1
Простой:
var element_type = '<' + field.get(0).tagName.toLowerCase() + '>';
В двух словах это извлекает элемент DOM, связанный с field
, и получает его имя тега через атрибут tagName
, унаследованный от DOMElement
, затем преобразует результат в нижний регистр с помощью метода String
toLowerCase()
. Некоторые браузеры вернут tagName
в верхнем регистре, поэтому для согласованности вы должны преобразовать его в нижний регистр.
Ответ 2
Используйте элемент DOM tagName
:
var element_type = field[0].tagName;
Обратите внимание, что браузеры не полностью соответствуют случаю, возвращенному tagName
, поэтому вы должны, вероятно, называть toLowerCase
безопасным: field[0].tagName.toLowerCase()
.