2011-05-31 79 views
6

我正在使用javascript將鼠標移至元素的ID上。但我沒有得到它.. 按我的代碼,它顯示空..鼠標上的元素ID

我的代碼是:

function getid() { 
      var e = document.getElementById(this); 
      alert(e); 
     } 

和我打電話的功能:

<input type="image" id="img" 
         style="margin: 8px 4px 4px 4px; width:142px; height:117px;" src="images2.jpg" onmouseover="getid();" onmouseout="outmouse();" /> 

如何我可以在鼠標上獲取元素ID嗎?

回答

13

檢查此

<script> 
function getid(obj) { 
      alert(obj.id); 
     } 
</script> 


<input type="image" id="img" 
         style="margin: 8px 4px 4px 4px; width:142px; height:117px;" src="images2.jpg" onmouseover="getid(this);" onmouseout="outmouse(this);" /> 
2

在jQuery中:

$(input).mouseover(function() 
{ 
    var showID = $(this).attr("ID"); 
    alert(showID); 
}); 
6

固有的事件屬性的值是函數。你有什麼是一樣的:

onmouseover = function() { 
    getid(); 
} 

當你調用一個函數沒有對象,它是一樣的window.thefunction()。所以你打電話window.getid()所以this(在getid函數裏面)是窗口對象。

如果您確實想要使用固有事件屬性(提示:don't),那麼您必須明確this是什麼。

onmouseover="getid.call(this)" 

然而,則:

var e = document.getElementById(this); 

...是無稽之談,因爲this是元素,而不是元素的ID。

你可以從this獲得id屬性,並用它來查找元素,但是這將是愚蠢的,你可以簡單地說:

var e = this; 
+0

+1偉大的答案! – Craig 2011-05-31 10:27:13

相關問題