2011-05-27 103 views
1
window.onload=function(){ 

var container = document.getElementById('container'), 
template = '<li>\ 
    <input type="checkbox">\ 
</li>\ 
<li>\ 
    <input type="checkbox">\ 
</li>\ 
<li>\ 
    <input type="checkbox">\ 
</li>'; 

container.onchange = function(e) { 
var event = e || window.event, 
    target = event.srcElement || event.target; 

if(target.checked && target.parentNode.getElementsByTagName('ul').length === 0) { 
    var ul = document.createElement('ul'); 
    ul.innerHTML = template; 
    target.parentNode.appendChild(ul); 
} else { 
    var ul = target.parentNode.getElementsByTagName('ul')[0]; 
    target.parentNode.removeChild(ul); 
} 
}; 

} 

<ul id="container"> 
<li> 
    <input type="checkbox"> 
</li> 
<li> 
    <input type="checkbox"> 
</li> 
<li> 

如何唯一id分配給在上述代碼中的每個複選框.................如何將一個唯一的ID分配給每個複選框

 <input type="checkbox"> 
    </li> 
</ul> 

回答

0

在這裏你去:中

window.onload = function() { 
    var container = document.getElementById('container'); 

    container.onchange = function(e) { 
     var event = e || window.event, 
      target = event.srcElement || event.target, 
      ul, str = '', i; 

     if (target.checked && target.parentNode.getElementsByTagName('ul').length === 0) { 
      ul = document.createElement('ul'); 
      for (i = 0; i < 3; i++) { 
       str += '<li><input type="checkbox" id="cb_' + +(new Date) + i + '"></li>';  
      } 
      ul.innerHTML = str; 
      target.parentNode.appendChild(ul); 
     } else { 
      ul = target.parentNode.getElementsByTagName('ul')[0]; 
      target.parentNode.removeChild(ul); 
     } 
    }; 
}; 

因此,而不是使用靜態模板,我創建了一個循環的HTML字符串。該ID基於new Date(它返回一個時間戳)和迭代器i的結果。例如ID值可能是:

  • cb_13065045104750
  • cb_13065045104751
  • cb_13065045104752

現場演示:http://jsfiddle.net/simevidas/psmR5/

1

而不是硬編碼您的複選框標記在window.onload,我會添加一個createCheckbox函數來處理爲您創建唯一的ID。

下面是一個例子:

var gCheckboxID = 0; 
function createCheckbox() 
{ 
    return '<input type="checkbox" id="Prefix' + String(gCheckboxID++) + '" />'; 
} 

然後,每次調用createCheckbox時,你會被給予標記與唯一ID的新元素。

+0

如何改變這種代碼....... ... – thuk 2011-05-27 13:31:33

+0

改變它做什麼? – 2011-05-27 13:32:06

相關問題