2014-03-31 243 views
0

我需要在add function中增加我的变量数,该值在用户单击按钮时起作用。我知道这是可以做到的,如果我以某种方式声明var count这个函数以外,然后把count++所以每次用户点击它具有新值的按钮,但你可以在我的代码中看到我需要它在里面声明。如何在一个函数内增加JavaScript getElementById变量?

因此,对于每个索引(例如:1,2,3 ...),var count应该单独工作,并且只在该函数下递增。

的问题是,每当用户点击该按钮,它可以追溯到了var c。在第一线和增量东西不工作:(

<script type="text/javascript"> 

function add(index) { 
    var count = document.getElementById("A"+index).innerHTML; 
    count = parseInt(count); 
    count++; 
    var textarea = document.createElement("textarea"); 
    textarea.name = "txt" + index + count; 
    var div = document.createElement("div"); 
    div.innerHTML = textarea.outerHTML; 
    document.getElementById("inner"+index).appendChild(div); 
} 
</script> 

例如:当指数为2 var c从div取得数字3,下面的textarea名称应该是 - > txt24,txt25,txt26等...

+0

使用'数= parseInt函数(count)',而不是'parseInt(count);' –

+0

它并没有解决我递增的问题:( – mpavlovic89

回答

1

让我们用一个“字典”来存储每个父元素的计数,让我们保持你的add()功能之外:

var elementCounts = {}; 

现在,让我们调整add()方法,如果该对象不存在,则将初始计数置于该对象中;如果存在,则更新它。然后,你可以阅读,并增加在后续调用该对象的值:

function add(index) { 
    // build a key based on the index 
    var key = 'A' + index; 

    // Check if the key (property) exists in our dictionary (object) 
    if (key in elementCounts) { 
     // it's there, increment the count 
     elementCounts[key]++; 
    } else { 
     // it's not there, let's add it and start it at 1 
     elementCounts[key] = 1; 
    } 

    var textarea = document.createElement("textarea"); 

    // in this line, simply access the current count from the dictionary 
    textarea.name = "txt" + index + elementCounts[key]; 

    // and the rest of the code remains the same 
    var div = document.createElement("div"); 
    div.innerHTML = textarea.outerHTML; 
    document.getElementById("inner" + index).appendChild(div); 
} 
+0

我根据你的建议改变了这个,但它只解决了整数问题,它仍然不会增加。问题是,即使我将计数变量更改为数字 - 例如12.它会在每次单击按钮时给出数字13,而不是13,14,15 ... – mpavlovic89

+0

你有没有用新的计数值更新'A'字段? –

+0

A字段实际上是div id,看起来像这样:id =“A1”,id =“A2”等等......而这些div在内部有不同的数字。 – mpavlovic89

0

您可以保留任何变种内的数据,如按钮本身:-)

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title> Bla! </title> 
     <script type='text/javascript'> 
      function Count(obj) { 
       if (! obj.data) obj.data = 0; 
       obj.data++; 
       var div = document.createElement('div'); 
       div.id = 'id_' + obj.data; 
       div.innerHTML = "This is Number:" + obj.data; 
       document.getElementById('containerDiv').appendChild(div); 
      } 
     </script> 
    </head> 
    <body> 
     <button onclick='Count(this)'> Click to count </button> 
     <div id='containerDiv'> 

     </div> 
    </body> 
</html> 
相关问题