2013-07-15 6 views
40

का उपयोग कर एचटीएमएल के अंदर HTML को जोड़ें/हटाएं मैं एक div में कई पंक्तियां जोड़ने और उन्हें हटाने में सक्षम होना चाहता हूं। मेरे पास पृष्ठ के शीर्ष पर एक '+' बटन है जो सामग्री जोड़ने के लिए है। फिर प्रत्येक पंक्ति के दाईं ओर एक '-' बटन होता है जो उस पंक्ति को हटाने के लिए होता है। मैं इस उदाहरण में जावास्क्रिप्ट कोड नहीं समझ सकता।जावास्क्रिप्ट

यह मेरा मूल HTML संरचना होती है:

<input type="button" value="+" onclick="addRow()"> 

<div id="content"> 

</div> 

यह वह जगह है कि मैं क्या सामग्री div अंदर जोड़ना चाहते हैं:

<input type="text" name="name" value="" /> 
<input type="text" name="value" value="" /> 
<label><input type="checkbox" name="check" value="1" />Checked?</label> 
<input type="button" value="-" onclick="removeRow()"> 
+1

क्या आप अभी तक अपना जावास्क्रिप्ट कोड पोस्ट कर सकते हैं? – elclanrs

+0

@elclanrs मैंने इस ट्यूटोरियल का पालन करने की कोशिश की: http://www.dustindiaz.com/add-and-remove-html-elements- गतिशील-with-javascript/ लेकिन मेरे उदाहरण के साथ काम करने के लिए कोड नहीं मिला। मैंने पोस्ट किए गए अद्यतन उत्तर में भी देखा लेकिन मुझे वास्तव में कोड समझ में नहीं आया क्योंकि मैं जावास्क्रिप्ट के लिए बिल्कुल नया हूं। –

उत्तर

74

आप ऐसा कुछ कर सकते हैं।

function addRow() { 
    var div = document.createElement('div'); 

    div.className = 'row'; 

    div.innerHTML = 
     '<input type="text" name="name" value="" />\ 
     <input type="text" name="value" value="" />\ 
     <label> <input type="checkbox" name="check" value="1" /> Checked? </label>\ 
     <input type="button" value="-" onclick="removeRow(this)">'; 

    document.getElementById('content').appendChild(div); 
} 

function removeRow(input) { 
    document.getElementById('content').removeChild(input.parentNode); 
} 
+0

मैं एकाधिक पंक्तियों को जोड़ने में सक्षम होना चाहता हूं। मेरा सवाल थोड़ा अस्पष्ट था इसलिए मैंने इसे संपादित किया। –

+0

यह एकाधिक पंक्तियों का समर्थन करता है। –

+1

ओह, यह सही है। बस आपके कोड का प्रयास करने में त्रुटि हुई। अब यह काम कर रहा है। चीयर्स! –

-1

एक वर्ग है कि बटन के लिए कहते हैं की सुविधा देता है कि:

`<input type="button" value="+" class="b1" onclick="addRow()">` 

आपके जेएस इस तरह दिखना चाहिए:

$(document).ready(function(){ 
    $('.b1').click(function(){ 
     $('div').append('<input type="text"..etc '); 
    }); 
}); 
+2

उन्होंने jQuery का जिक्र नहीं किया। –

2

आप इस कार्य का उपयोग किसी बच्चे को डीओएम तत्व में जोड़ने के लिए कर सकते हैं।

function addElement(parentId, elementTag, elementId, html) 

{ 


// Adds an element to the document 


    var p = document.getElementById(parentId); 
    var newElement = document.createElement(elementTag); 
    newElement.setAttribute('id', elementId); 
    newElement.innerHTML = html; 
    p.appendChild(newElement); 
} 



function removeElement(elementId) 

{ 

    // Removes an element from the document 
    var element = document.getElementById(elementId); 
    element.parentNode.removeChild(element); 
} 
1

function addRow() 
    { 
     var e1 = document.createElement("input"); 
     e1.type = "text"; 
     e1.name = "name1"; 

     var cont = document.getElementById("content") 
     cont.appendChild(e1); 

    } 
3

नोड को निकालने के लिए आप इस समाधान यह मुझे मदद की कोशिश कर सकते हैं उत्पन्न करने के लिए निम्न प्रयास करें।

var rslt = (nodee=document.getElementById(id)).parentNode.removeChild(nodee); 
संबंधित मुद्दे