我正在使用java脚本动态添加HTML控件。例如,我的页面中有一个按钮。每当我单击该按钮时,它将在UI页面中的HTML控件上创建。所以,我想为控件添加click事件。是否可以获取所有UI控件ID?
答案 0 :(得分:2)
问题的最佳解决方案是使用event delegate
假设你引入了jQuery(> = 1.7),事情就会很简单,只需在你的控件中添加一个自定义类,例如control
:
$(document).on(
'click',
'.control',
function(e) {
var control = e.target;
// Work you handler
}
);
答案 1 :(得分: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);
答案 2 :(得分:1)
$('[id]')
返回所有已设置id的元素。
但要注意
这对于一个大dom来说会非常慢