a 標籤傳參this

        今天開發的時候遇到一個問題,本來想用a標籤的href屬性運行JS方法傳參的,結果並不行,查了一下,原因是href是作爲鏈接訪問的,所以想到了onclick屬性,是創建了一個匿名函數來達到運行JS方法,這樣就可以傳參了,這次要傳的參數是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()); 
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章