Javascript 递归函数是动态添加表行的有效方法吗?

Javascript 递归函数是动态添加表行的有效方法吗?,javascript,recursion,dynamic,html-table,rows,Javascript,Recursion,Dynamic,Html Table,Rows,在我的研究和尝试使用JavaScript动态地向HTML表添加行的过程中,每个id标记都必须根据行号递增。我找到了各种建议的方法。最后,我想我应该试着写一个递归函数来实现这个技巧。下面的工作。但我不知道它是否可以优化。请让我知道我能做些什么来改进它 function incrementElementID(element, incrementVal) { if(element.hasAttribute("id")) { idVal = element.getAttribute("id")

在我的研究和尝试使用JavaScript动态地向HTML表添加行的过程中,每个id标记都必须根据行号递增。我找到了各种建议的方法。最后,我想我应该试着写一个递归函数来实现这个技巧。下面的工作。但我不知道它是否可以优化。请让我知道我能做些什么来改进它

function incrementElementID(element, incrementVal) {

if(element.hasAttribute("id")) {
    idVal = element.getAttribute("id");
    element.setAttribute("id",idVal+incrementVal);
}

var numChildren = element.childElementCount;
for (var i=0; i<numChildren; i++)
    incrementElementID(element.children[i],incrementVal);

return;

}
函数incrementElementID(元素,incrementVal){
if(element.hasAttribute(“id”)){
idVal=element.getAttribute(“id”);
setAttribute(“id”,idVal+incrementVal);
}
var numChildren=element.childElementCount;

对于(var i=0;i,如果不是有意使用递归,最好使用闭包变量


在函数范围外设置一个变量,并在函数内递增。

最好使用一些简单的jQuery:

var incrementVal = ...
$("[id]").each(function(index, value) {
    elem = $(value);
    elem.attr("id", +elem.attr("id") + incrementVal);
});
$(“[id]”
选择具有id属性的任何元素:

。每个
迭代集合中的所有项目:


+elem.attr(“id”)
前面的+将属性值从字符串转换为整数。

为什么不使用
tr
s属性创建id,而不需要外部函数。