2016-01-31 100 views
0

我有JS代码根据html创建段落和输入元素。但我需要这个代码来创建每个元素只有一次。我有一个创建元素的选择表单。我怎么能做到这些元素只创建一次?

的Javascript代码和平

function comFunction(sel) { 
    switch (sel.value) { 
     case 'skype': 
      var skype = document.createElement("P"); 
      var temp = document.createTextNode("Enter your skype"); 
      var input = document.createElement("input"); 
      input.type = "text"; 
      skype.appendChild(temp); 
      form.appendChild(skype); 
      form.appendChild(input); 
      break; 
} 

HTML代码

<form id="form"> 
<select name="liason" id="liason" onchange="comFunction(this);"> 
    <option value="skype">Skype</option> 
    <option value="icq">ICQ</option> 
    <option value="facebook">Facebook</option> 
    <option value="email">e-mail</option> 
</select> 
</form> 

回答

0

如果添加一个id来创建和附加到DOM元素,你就可以在运行之前检查他们的存在代码,将创建它们第二次:

function comFunction(sel) { 

    switch (sel.value) { 
    case 'skype': 
     if(document.getElementById("skypeParagraph") === null) { 
      var skype = document.createElement("P"); 
      skype.setAttribute("id", "skypeParagraph"); 
      var temp = document.createTextNode("Enter your skype"); 
      var input = document.createElement("input"); 
      input.type = "text"; 
      skype.appendChild(temp); 
      form.appendChild(skype); 
      form.appendChild(input); 
     } 
     break; 
} 
+0

谢谢,但如果我想添加超过10种co nnection,我必须添加10个IDes? – wiaim

+0

是的,这是正确的。每个创建的主要元素都会使用一个id(或类)创建,然后您可以在代码尝试创建该元素时检查它是否存在。此外,给一个元素一个id是非常有帮助的,因为各种原因(在这个解决方案中容易获得JS,容易编写一个CSS选择器)。 –

相关问题