2016-04-12 16 views
2

Ich habe eine Tabelle, und ich möchte tr entfernen, indem Sie auf ein href-Tag klicken. Hier ist der Code.Löschen Zeile (TR) durch Klicken auf eine href

<tr>         
    <td data-title="ID"> 
      echo '<a href="" onclick="return Deleteqry('.$orderID.')";><font size="2" color="#FF0000"><i class=" fa fa-remove" title="Remove this Row"> </i></a>'; 

    </td> 
</tr> 

<script> 
function Deleteqry(id) 
    { 
     if(confirm("Are you sure you want to delete this Row?")==true) 
    $(this).closest('tr').remove(); 
     return false; 
    } 

</script> 

Ich habe andere Fragen in SO und gefunden $(this).closest('tr').remove(); aber es funktioniert nicht. Ich habe keinen Fehler, aber die Zeile löscht nicht. Ich bekomme eine Alarmbox, aber die Zeile wird nicht gelöscht.

Bitte beraten, was mache ich falsch.

+0

Wie bereits erwähnt, verlieren Sie den Kontext mit dem Schlüsselwort "this". Es muss zum Zeitpunkt des Klickens an Ihre Methode übergeben werden. – Bosworth99

Antwort

7

Grundsätzlich this innerhalb einer normalen Funktion wird auf window Objekt zeigen.

.... onclick="return Deleteqry('.$orderID.', this)";> 

Sie müssen es also manuell an die Inline-Event-Handler-Funktion übergeben.

function Deleteqry(id,_this) { 
if(confirm("Are you sure you want to delete this Row?")==true) 
    $(_this).closest('tr').remove(); 
    return false; 
} 

empfangen Sie es, konvertieren Sie es als ein jquery Objekt und machen Sie Ihre Arbeit darüber.

+1

Danke für Ihre Antwort. Abgestimmt. – Ironic

+2

@CalculatingMachine - Sie sollten diese Antwort als "korrekt" auswählen. Denn es ist. – Bosworth99

+0

Ich bin mir nicht sicher, aber Fehler bekommen Uncaught SyntaxError: Unerwartetes Token, es überprüft. – Ironic

Verwandte Themen