javascript:同时调用相同的函数?

javascript:同时调用相同的函数?,javascript,html,Javascript,Html,我开发这个javascript代码已经有一段时间了,它只在单击按钮时运行一次函数 JAVASCRIPT: 当我在两个div上单击按钮时,每次单击都应该在主div上添加这两个div 预期产出: 假设代码正常工作,这很简单: function add(me) { var buttons = document.querySelectorAll('button.add'); var btn; for(var b = 0; b < buttons.length; b++)

我开发这个javascript代码已经有一段时间了,它只在单击按钮时运行一次函数

JAVASCRIPT:

当我在两个div上单击按钮时,每次单击都应该在主div上添加这两个div

预期产出:


假设代码正常工作,这很简单:

function add(me) 
{
    var buttons = document.querySelectorAll('button.add');
    var btn;
    for(var b = 0; b < buttons.length; b++)
    {
        btn = buttons[b];
        if(me === btn) {
            btn.a = btn.a || 1;
            btn.a++;
            addForButton(btn);
        }
    }
}

function rem(me) 
{
    var buttons = document.querySelectorAll('button.remove');
    var btn;
    for(var b = 0; b < buttons.length; b++)
    {
        btn = buttons[b];
        if(me === btn) {
            var divs = me.parentNode.querySelectorAll('div > div');
            if(divs.length > 1){
                divs[divs.length - 1].parentNode.removeChild(divs[divs.length - 1]);
                btn.a--;
            }
        }
    }
}

function addForButton(name) {
    var parent = name.parentNode;
    var content = parent.querySelector("div");
    if (name.a <= 9) 
    {
        var str = content.innerHTML;
        str = str.replace(/_1/gi, '_' + name.a);
        var divtest = document.createElement("div");
        divtest.setAttribute("id", name.a);
        divtest.innerHTML = str;
        parent.appendChild(divtest);
    }
}
函数添加(me)
{
var buttons=document.queryselectoral('button.add');
var-btn;
对于(var b=0;bdiv');
如果(divs.length>1){
divs[divs.length-1].parentNode.removeChild(divs[divs.length-1]);
顺便说一句--;
}
}
}
}
函数addForButton(名称){
var parent=name.parentNode;
var content=parent.querySelector(“div”);

如果(name.a在
id
中只使用一个数字是非法的HTML。我删除了我的答案,因为此时我仍然不确定你在问什么…当我单击它不断添加的div上的每个按钮时。尝试运行我的脚本,它不会让我在每个main1和main2 div中添加9个div
a
变量在这两个状态下都存在。总之,这意味着你可以只需单击9次。您需要为不同的项目保存2个状态clicks@Max如何在每个按钮上同时单击9次?是的,这就是我要找的。非常感谢。有没有办法删除按钮的add()函数?这是什么意思?remove
onclick=“add(this);”
?我的意思是只有一个函数,所有函数都像我的OP@SpiderPig是的,我可以这样做作为参考。你可以用javascript向按钮添加onclick处理程序。比如:
<div id="main1">
<button onclick="add(this);return false;">+</button>
<div id="content1">
A
</div>
</div>

<div id="main2">
<button onclick="add(this);return false;">+</button>
<div id="content2">
B
</div>
</div>
+
A
A 2
A 3
A 4
A 5
A 6
A 7
A 8
A 9
A 10
+
B
+
A
A 2
A 3
A 4
A 5
A 6
A 7
A 8
A 9
A 10
+
B
B 2
B 3
B 4
B 5
B 6
B 7
B 8
B 9
B 10
function add(me) 
{
    var buttons = document.querySelectorAll('button.add');
    var btn;
    for(var b = 0; b < buttons.length; b++)
    {
        btn = buttons[b];
        if(me === btn) {
            btn.a = btn.a || 1;
            btn.a++;
            addForButton(btn);
        }
    }
}

function rem(me) 
{
    var buttons = document.querySelectorAll('button.remove');
    var btn;
    for(var b = 0; b < buttons.length; b++)
    {
        btn = buttons[b];
        if(me === btn) {
            var divs = me.parentNode.querySelectorAll('div > div');
            if(divs.length > 1){
                divs[divs.length - 1].parentNode.removeChild(divs[divs.length - 1]);
                btn.a--;
            }
        }
    }
}

function addForButton(name) {
    var parent = name.parentNode;
    var content = parent.querySelector("div");
    if (name.a <= 9) 
    {
        var str = content.innerHTML;
        str = str.replace(/_1/gi, '_' + name.a);
        var divtest = document.createElement("div");
        divtest.setAttribute("id", name.a);
        divtest.innerHTML = str;
        parent.appendChild(divtest);
    }
}
<button onclick="add();return false;">+</button>

<button onclick="add();return false;">+</button>