2012-03-27 42 views
1

我使用java腳本動態添加HTML控件。例如,我的頁面上有一個按鈕。每當我點擊按鈕時,它都會在UI頁面上的HTML控件上創建。所以,我想爲控件添加點擊事件。是否有可能獲得所有的UI控件ID?如何獲取所有HTML元素的ID?

+0

您是否確實希望頁面上的* all *元素的ID? – 2012-03-27 06:20:52

+0

爲什麼不在創建時將每個UI控件的ID保存在數組中?這將使這些ID更快地檢索。 – Ohas 2012-03-27 06:22:18

+0

是的,我想爲所有元素添加點擊事件,如$(「#element id come her」)。live(「click」,function(){}); – selladurai 2012-03-27 06:23:06

回答

2

的可能是最好的解決問題的方法是使用event delegate

假設你的jQuery(> = 1.7 )的介紹,事情會很簡單,只需添加一個自定義類,如control到您的控制:

$(document).on(
    'click', 
    '.control', 
    function(e) { 
     var control = e.target; 
     // Work you handler 
    } 
); 
1

$('[id]')返回所有設置了id的元素。

但要注意

這將是一個大DOM相當緩慢

2

我不認爲這是一個好主意,獲取所有元素的的ID,但是:

var elements = document.querySelectorAll("[id]"); 

爲了更好的跨瀏覽器的支持,我建議你jQuery的:

$("[id]"); 

否則你必須得到所有的元素並通過id過濾。例如:

var allElements = document.getElementsByTagName("*"); 
var elements = []; 

for (var i = 0, node; node = allElements[i++];) 
    if (node.id) elements.push(node);