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

标签 javascript html

我正在开发这段 javascript 代码,它只在单击按钮时运行一次函数。

JAVASCRIPT:

var a = 1;

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

HTML:

<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>

上面的代码只调用了一次函数,但我希望它同时运行函数。

OUTPUT:

+
A
A 2
A 3
A 4
A 5
A 6
A 7
A 8
A 9
A 10
+
B

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

EXPECTED OUTPUT:

+
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);
    }
}

然后给按钮添加ID:

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

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

关于javascript:同时调用相同的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30133442/

相关文章:

javascript - setState 正在更新数组中所有元素的 css 属性

javascript - 混合数据类型、函数和对象

html - CSS 表单对齐

javascript - 网站无法在 Internet Explorer 8、9 或 10 中加载

java - 从数据库检索数据的想法 struts 2 web 应用程序

html - 使用 CSS 访问属性 href 到文件

html - 在 :hover 上显示隐藏的 div

javascript - {}.hasOwnProperty ('id' );在控制台中返回语法错误

javascript - 如果菜单处于事件或非事件状态,则切换图标的类别。多级推送菜单

javascript - AngularJS 和 Rails 性能问题(更好地集成或分离) - js 和 css asset pipeline