2010-03-29 48 views
0

我有鏈接調用點擊時的功能:獲取對象的ID時,給出對象

<a href="javascript:spawnMenu(this);" id="link1">Test1</a> 

爲了讓我的函數的工作,我需要訪問的對象,這樣我可以執行jQuery的操作像這樣:

alert($(objCaller).offset().left); 

由於objCaller指向對象而不是對象ID,所以這不起作用。我需要這樣的:

alert($("a#link1").offset().left); 

我如何從objCaller獲得對象ID?

+1

objCaller.id不起作用? – 2010-03-29 16:20:18

+0

使用objCaller.id – pawel 2010-03-29 16:20:26

回答

3

你需要這樣做:

<a href="javascript:;" onclick="spawnMenu(this);" id="link1">Test1</a> 

無法通過一個javascript傳遞this:URL。

2

這不工作?

objCaller.id 
+0

'Test1'返回'undefined'。 – Pieter 2010-03-29 16:22:23

+1

噢,是的,那是因爲你不能在href中傳遞this。改爲通過'onclick'事件傳遞它。 – tloflin 2010-03-29 16:23:54

0

就在我頭頂:alert($(this).offset().left);不行嗎?否則,您可以通過$(this).attr("id")獲取ID。

+0

請參閱下面的Rob的回答。我甚至沒有看到這個問題的部分。 – Todd 2010-03-29 16:23:47

0

從你的問題中不清楚objCaller指的是什麼。如果它引用元素本身,那麼$(objCaller)對於jQuery就可以正常工作。

試試你的代碼使用螢火蟲(Firefox的擴展)。您可以把「警報」對「的console.log」所以你必須:

console.log(objCaller); 

這將有助於你的工作到底是什麼存儲在objCaller(它不是一個元素,如果$(objCaller)不正如我所說)。

如果objCaller是一個元素,那麼objCaller.id將是檢索id的方式。

0

你可以通過這樣得到ID:

function spawnMenu (elem) { 
    var id = elem.id; // elem is just a DOM node, so access it's id 

    // your code here... 
} 

然而,jQuery的也應該是能包住DOM節點,所以下面應該工作以及:

function spawnMenu (elem) { 
    elem = $(elem).get(0); 

    // your code here... 
}