2016-12-14 1 views
1

Ich habe ein Problem mit meinem Code, ich füge nur einige remove() -Funktion, und ich sehe nur ein Problem damit mit der Website-Abschnitt und der PRM-Abschnitt.JQuery - Hilfe zu .remove() -Funktion

Hier ist ein Video-Capture des „Problem“: http://recordit.co/HGak32nwpy
Wenn ich Artikel anhängen, ich will nicht wirklich die letzte angehängt löschen, aber der letzte meiner Seite. Zum Beispiel, wenn ich 2 Seiten an die erste Firma anschließe und 3 andere an die zweite Firma. Wenn ich die Schaltfläche remove() auf der ersten Firma drücke, möchte ich nur die letzte Seite der ersten Firma anhängen und nicht die letzte, die erstellt wurde. Das Gleiche gilt für den PRM-Bereich.

Vielen Dank im Voraus für Ihre Hilfe!

Here is a JSFiddle for the code

$(document).ready(function() { 
 
    var counter = 2; 
 
    $('#btnAdd').on('click', function() { 
 
    $('#company').append('<li><hr> Company N°' + counter + ' <input id="siteAdd" type="button" value="Add Site" /><input id="siteRemove" type="button" value="X"/></li>'); 
 
    counter++; 
 
    }); 
 
    $("#btnRemove").on('click', function() { 
 
    if (counter == 2) { 
 
     alert("You need to have at least one company !"); 
 
     return false; 
 
    } 
 
    $('li:last').remove(); 
 
    counter--; 
 
    }); 
 
}); 
 

 
$(document).ready(function() { 
 
    var counter = 1; 
 
    $('#company').on('click', '#siteAdd', function() { 
 
    $(this).closest('li').append('<p>Site N°' + counter + ' <input id="prmAdd" type="button" value="Add PRM" /><input id="prmRemove" type="button" value="X" /></p>'); 
 
    counter++; 
 
    }); 
 
    $('#company').on('click', '#siteRemove', function() { 
 
    if (counter == 1) { 
 
     alert("You need to have at least one site !"); 
 
     return false; 
 
    } 
 
    $('p:last').remove(); 
 
    counter--; 
 
    }); 
 
}); 
 

 
$(document).ready(function() { 
 
    var counter = 1; 
 
    $(document).on('click', '#prmAdd', function() { 
 
    $(this).closest('li p').append('<span style="margin-left: 10px;">PRM N°' + counter + '</span>'); 
 
    counter++; 
 
    }); 
 
    $(document).on('click', '#prmRemove', function() { 
 
    if (counter == 1) { 
 
     alert("You need to have at least one PRM !"); 
 
     return false; 
 
    } 
 
    $('span:last').remove(); 
 
    counter--; 
 
    }); 
 
});
<div id="company"> 
 
    <li> Company N°1 
 
<input id="siteAdd" type="button" value="Add Site" /> 
 
<input id="siteRemove" type="button" value="X" /> 
 
    </li> 
 
</div> 
 
<br> 
 
<input id="btnAdd" type="button" value="+ Company" /> 
 
<input id="btnRemove" type="button" value="- Company" /> 
 
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>

+0

__Identifier in HTML müssen eindeutig sein__, Verwenden Sie allgemeine Klassen hier ist ein Beispiel https://jsfiddle.net/satpalsingh/mj3nh7ap/ – Satpal

Antwort

2

Sie sind immer das letzte P auf der Seite bekommen und ihn zu entfernen, ändern Sie den folgenden Code

$('p:last').remove(); 

zu

$(this).closest('li').find('p:last').remove(); 
+0

Siehe https://jsfiddle.net/jnwrc5ay/303/ – Craig

+1

@ KRIED Constantin akzeptieren und upvote die Antwort ist das funktioniert für Sie –

+0

Sorry, sah nur die anderen Schaltflächen hatten das gleiche Problem: Aktualisiert https://jsfiddle.net/jnwrc5ay/307/ – Craig