2012-03-27 44 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);