2013-07-11 44 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); 
}); 

以上將給texttextarea我猜。但是當我使用第一個時,它給出了未定義的。

給出了一個元素的ID,我怎麼找到它的類型。

提前致謝。

+1

你可以使用'$( '#標題')[0] .type' – Ian

+0

@Ian偉大的作品,但你還沒有把它作爲一個答案。謝了哥們! –

回答

1

input是一個普通的標籤,你應該使用:

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

這將返回未定義的:

$('#title').type 

因爲$("#title")是一個jQuery對象,type是HTML元素的屬性。您可以從jQuery對象得到HTML元素像這樣:

$('#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我在這裏錯過任何東西 –

1
$('#title').attr('type') ; 

OR

$('#title').prop('type'); 
2

您可以通過編寫

獲得元素的類型
$("#target").attr('type'); 

或使用

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

那麼'textarea'呢? –

+1

@KhawerZeshan更新了我的帖子。看看。 –

+0

正如我評論tagName返回大寫字母,請注意。 –