1. 程式人生 > >A標籤中通過href和onclick傳遞的this物件實現思路

A標籤中通過href和onclick傳遞的this物件實現思路

想傳遞當前物件給一個函式,於是就將這個URL寫成”Javascript:shoControlSidebar(this)”,可是結果發現這並不可行,接下來為大家詳細介紹下解決方法

在blog的後臺管理中允許為一個分類新增一個地址,但是不好新增onclick事件。想傳遞當前物件給一個函式,於是就將這個URL寫成"Javascript:shoControlSidebar(this)",可是結果發現這並不可行,傳遞過去的引數是一個物件,但是卻得不到任何其他資訊。我想得到的是innerText,而這個this並非指向它所在的A標籤。

這是<a href="Javascript:shoControlSidebar(this)">

<a href="javascript:void(0)" onclick="shoControlSidebar(this)">不同的地方。

當使用onclick=”shoControlSidebar(this)”的時候,直譯器會給他包裝一個匿名函式,變成了:
複製程式碼 程式碼如下:

a.onclick = function anonymous()
{
shoControlSidebar(this);
}

這個this指的就是a這個物件,而使用href的方式時,由於是一個地址,這個this就無處可指了。
複製程式碼 程式碼如下:

<a href="javascript:void(0);"
onclick="test(this);">A標籤測試</a>

複製程式碼 程式碼如下:

想獲取A 中的innerHTML
如果href="test(this);" 不但獲取不到值,而且程式將退出,href引向不對。

複製程式碼 程式碼如下:

function test(obj){
alert(obj);
//js方式獲取開始標籤和結束標籤中間插入內容
alert(obj.innerHTML);
//jquery方式獲取開始標籤和結束標籤中間插入內容
alert($(obj).html());
}