2013-07-11 4 views
1

Мне нужно определить тип элемента, возможно, идентифицированный его имуществом id.Определить тип ввода - jQuery

Например, в следующем виде ...

<form id='my-form'> 
    <input type='text' id='title' /> 
    <textarea id='comment'></textarea> 
</form> 

Я хотел бы иметь возможность определить, что $('#title') это текстовое поле.

После некоторых поисков я пробовал что-то вроде этого, но он возвращает undefined.

$('#title').type 

Но некоторые вещи, как это похоже на работу, я не знаю, почему ...

$('#my-form :input').each(function() { 
    alert(this.type); 
}); 

выше даст text и textarea я думаю. Но когда я использую первый, он дает неопределенные значения.

с учетом идентификатора элемента, как я могу найти его тип.

Благодарим заранее.

+1

Вы можете использовать '$ ('# название') [0] .type' – Ian

+0

@Ian прекрасно работает, но вы не поставить его в качестве ответа. Спасибо друг! –

ответ

1

input нормальный тег, вы должны использовать:

$('#my-form input').each(function() { 
    alert(this.type); 
}); 

Это вернет неопределенное:

$('#title').type 

Поскольку $("#title") является объектом JQuery и type этого свойство элемента HTML. Вы можете получить HTML-элемент из объекта JQuery, как это:

$('#title').get(0).type 
+0

Почему downvote? – mishik

+1

Новое дополнение к старому ответу прекрасно работает;) –

1

Вы можете использовать

if($('#title').is('input')){ 
    alert('title in an input element') 
} else if($('#title').is('textarea')){ 
    alert('title in an textarea) 
} 
+0

@downvoter я пропустил что-нибудь здесь –

2

Вы можете получить тип элемента, написав

$("#target").attr('type'); 

или использовать

$("#target").get(0).tagName // return tag name like INPUT,TEXTAREA ..etc 
+0

А как насчет 'textarea'? –

+1

@ KhawerZeshan обновил мое сообщение. Посмотрите. –

+0

Как я прокомментировал tagName возвращается в прописных буквах, имейте в виду. –

Смежные вопросы