var i = 0;
function Myfunc() {
var newdiv = document.createElement('div');
var el = document.createElement('div');
var dynamicClass = "x" + i;
i++;
el.setAttribute('class', dynamicClass);
var c = document.getElementsByClassName(dynamicClass);
newdiv.appendChild(ele);
for (var j = 0; j < c.length; j++) {
c[j].appendChild(newdiv);
}
}
<input type="hidden" value="0" id="nextValue">
<div class="x1">a...</div>
<div class="x2">b...</div>
<div class="x3">c...</div>
<input type="button" onclick="Myfunc()" />
我想在函数中动态创建类名。
根据我在Java和C方面的经验,我希望每次按下按钮并触发函数以增加变量i(也就是更改类的名称,如您将在下面看到的那样)并将变量i的值保留到内存中,以便它下次再次触发该功能时,可以进一步增加。
function Myfunc(i) {
var newdiv = document.createElement('div');
var el = document.createElement('div');
var dynamicClass = "x" + i;
i++;
el.setAttribute('class', dynamicClass);
var c = document.getElementsByClassName(dynamicClass);
for(var j=0;j<c.length;j++){
newdiv.appendChild(el);
}
}
<div class="x1">a...</div>
<div class="x2">b...</div>
<div class="xn">c...</div>
<input type="button" onclick="Myfunc()"/>
变量我如何具有先前的值?
如果我的问题听起来微不足道,那么我是一名学生,但是对JS的经验几乎为零。
最佳答案
只需在按钮本身上添加data属性,然后将“ this”传递给函数调用即可获取按钮。
无需维护全局变量或其他隐藏元素:http://jsfiddle.net/h0cuLuty/1/
javascript:
function Myfunc(obj) {
var i=parseInt(obj.getAttribute('data'),10);
var existing = document.getElementsByClassName('parent')[0];
var el = document.createElement('div');
var txt = document.createTextNode("x"+i);
el.appendChild(txt);
var dynamicClass = "x" + i;
el.setAttribute('class',dynamicClass);
existing.appendChild(el);
i++;
obj.setAttribute('data',i);
}
HTML:
<div class="parent">
</div>
<input type="button" data="1" onclick="Myfunc(this)"/>