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)"/>

09-28 00:20