Как получить тип элемента.JavaScript / JQuery - PullRequest
2 голосов
/ 13 июля 2010

Точно, придет идиотский момент. Я выполнил поиск, но не могу найти правильное решение.

У меня есть селектор jQuery, который выбирает класс, может быть ID, фактически это может быть что угодно, этот селектор подается в функцию, которую я программирую.

Мне нужно выяснить тип каждого соответствующего элемента, например:

<div class="target"></div>

Вернет div и

<input class="target" />

Вернет ли ввод, просто верно?

Ну, вы бы так подумали, но я не могу найти решение.

Любая помощь будет принята с благодарностью: -)

Ответы [ 3 ]

4 голосов
/ 13 июля 2010

Вам необходимо получить базовый элемент DOM и получить доступ к свойству tagName. Например,

alert($("#target").get(0).tagName);
// -> DIV

Имейте в виду, что браузеры будут возвращать имя тега в верхнем регистре, поэтому что-то подобное может вызвать у вас некоторое горе:

if ($("#target").get(0).tagName == "div") { alert("DIV!"); }
1 голос
/ 13 июля 2010
$.fn.tagName = function() {
    return this.get(0).tagName;
}
alert($('#testElement').tagName());

Чтобы объяснить немного больше, почему ваш оригинальный пример не работал, метод each () всегда будет возвращать исходный объект jQuery (если только сам объект jQuery не был изменен). Чтобы увидеть, что происходит с каждым из ваших кодов, вот несколько псевдокодов, которые показывают, как работает метод each ():

function each(action) {
    for(var e in jQueryElements) {
        action();
    }
    return jQueryObject;
}

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

0 голосов
/ 13 июля 2010

пробовать:

$("yourelement").is("input")

или:

if ($(this).is('input:checkbox'))

и т. Д. .... в соответствующих случаях

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