我使用jQuery來重寫DOM以將無JS HTML頁面轉換爲JS驅動器頁面。我在轉換圖片鏈接時遇到了一個小問題。在原來的代碼,我有:jQuery:如何將「src」屬性寫入子元素的Onclick函數參數
<div class="f">
<a href="images/Fig-03-2.png" target="_blank">
<img src="images/fig-03-2.png" alt="Fig 3.3" />
</a>
</div>
...我希望把它改造成:所以它包含img src
<div class="f">
<a>
<img src="images/fig-03-2.png" alt="Fig 3.3" onclick="imagepop("fig-03-2.png")/>
</a>
</div>
我無法弄清楚如何寫onclick
屬性價值爲imagepop
的論點。我試過了:
$(".f a").attr('onclick', 'imagepop(' + $(this).attr('src') + ')');
...但是$(this).attr('src')
返回「undefined」。
我應該如何修復我的代碼行,或者更好地從imagepop
函數中讀取img src
屬性?
**請注意,我還沒有開發頁面,以便每個div都有唯一的ID,並且不打算這樣做。 <div>
標籤內沒有任何元素具有分配給它們的ID。
你忘了在JS代碼字符串中加引號/轉義,所以它顯示爲'imagepop(http://www.example.com/images/fig-03-2.png)'顯然不會工作。然而,在任何情況下,設置來自字符串的事件處理程序屬性都是非常不可靠的跨瀏覽器,而且首先是一個壞主意。您可以將一個事件處理程序設置爲DOM'element.onclick'到一個Function對象,或者您可以像在TJ的回答中一樣使用jQuery方式,但是不要將JS代碼放入字符串中。 – bobince
另外,請保留'href's,這樣它們仍然可以作爲我們可以關注的正常鏈接,鍵盤 - 導航中間點擊換新標籤等。 – bobince