簡體   English   中英

如何知道使用jQuery click事件的HTML對象類型?

[英]How to know which type of Html object is using jQuery click event?

我怎么知道我使用jQuery單擊了哪種HTML對象?

例如,如果我單擊“按鈕”,則它應該通知我這是按鈕對象或“文本輸入”或“文本區域...”。

為什么我問這個問題?

因為我正面臨此類問題。

我有一個Textarea,下面是文件輸入HTML對象。 我已將Caret函數(該函數將返回Textarea中的當前光標位置)綁定到該Textarea。 但是,當我單擊“瀏覽”按鈕上傳文件時,它給了我一個錯誤。 所以我想通過知道哪種類型的HTML對象來防止這種情況?

你可能會喜歡

$(".myBtn").click(function(){

       alert($(this).prop("tagName"));

});

更新

這是一個演示小提琴

在點擊事件中

function(e){
    var type=$(this).prop('tagName'); // I think it will need jQuery >1.6
    // or
    var type=$(this)[0].tagName;
}

實際上,過去有很多關於此問題的文章。

好吧,您可以使用attr(“ tagName”)來返回標簽的名稱。

示例代碼段:假設您單擊ID為#myId的某個元素,然后綁定click事件並獲取attr(“ tagName”)(jQuery方式)

$('#myId').on('click', function(){
  console.log($(this).attr('tagName'));
});

這應該有所幫助。

演示

$(this).attr("tagName")

或可以使用

 $(this).prop('tagName');

參考ATTR道具

<!doctype html>
<html lang="en">
<head>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body> 
<div id="log"></div>
<input type="button" id="myButton" value="Button">
<input type="submit" id="myButton" value="submit">
<input type="text" id="myButton" value="text">
<input type="date" id="myButton" value="date">
<textarea>Test</textarea>
<script>
$("input, textarea").on('click', function (e) {
    $( "#log" ).html( "clicked: " + event.target.nodeName + " Type: " + this.type);
});
</script>
</body>
</html>

$(e.target)-包含用戶單擊的DOM元素。 我們可以使用該對象獲取任何有關對象用戶單擊的內容。

e.target始終將是被單擊的頂部元素。因此,從技術上講,每次在屏幕上單擊主體時,e.target都會始終返回樹中被單擊區域中最遠的子元素。 但是,我們可能有多個絕對定位的元素占據了同一區域。 在這種情況下,將返回具有較高z-index的元素。

您還可以使用一些DOM屬性來獲取對象類型:

e.target.nodeName

要么

e.target.tagName

例如:

HTML-

<input class="Track" type="button" value="Submit" />
 <button class="Track">Submit</button>

jQuery-

$('.Track').click(function (e) {
   alert("Object: " + e.target.nodeName + " Type: " + e.target.type);            
});

嘗試這個

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM