jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化's Archiver

lolmuta 發表於 2015-11-21 17:36

jquery 程式碼注入Html

[i=s] 本帖最後由 lolmuta 於 2015-11-21 17:40 編輯 [/i]

這是在本論壇 的"javascript 討論" 上注入程式碼,注入的方式是靠chrome 的擴展功能。
效果是會在每個標題的後面加上一個按鈕,名稱叫"test"
當按下test,則會顯示該標題背後的超連結網址。
雖然創造的按鈕都有觸發事件,但是所顯示的連結都是最後一個標題的網址。
而非該標題的網址,這是什麼原因啊…?要如何修改才能正常運行呢?[code]$(document).ready(function(){
        $('th[class="subject common"]').each(function(){
                get_href=$(this).find('a').attr("href");
                new_ele = $("<button type='button'>test</button>");
                new_ele.click(function(){
                        alert(get_href);
                });
                $(this).append(new_ele);
        });       
});[/code]

wmh 發表於 2015-11-22 02:17

[b]回復 [url=http://jsgears.com/redirect.php?goto=findpost&pid=5973&ptid=4113]1#[/url] [i]lolmuta[/i] [/b]

get_href 會是 global 的,所以多次改變內容後,只會留下最後的那次內容,因此結果就不如預期。

因為你有用到 jQuery,建議你改用 [url=http://jsgears.com/thread-402-1-1.html]delegate[/url] 的方式來綁定按鈕的事件,
當按鈕按下後,再用相對關係找出正確的元素來處理。

頁: [1]

Powered by Discuz! Archiver  © 2001-2009 Comsenz Inc.