2017-06-29 1 views
-1

hier ist Script- hiernull in Alarmtext immer auf die Schaltfläche

function gettext() {  
    var $row = $(this).closest("tr"); 
    var $text = $row.find(".id").text(); 
    alert($text); 
} 

genehmigen, klicken ist html Code-

<tr> 
    <td>1</td> 
    <td class="id"> 
     <%=u.getMid()%> 
    </td> 
    <td> 
     <%=u.getName()%> 
    </td> 
    <td> 
     <%=u.getEmailId()%> 
    </td> 
    <td> 
     <%=u.getStatus()%> 
    </td> 
    <td> 
     <button type="submit" class="btn btn-success bnt-sm" onclick="gettext()">Approve</button> 
     <button type="submit" class="btn btn-danger bnt-sm">Reject</button> 
    </td> 
</tr> 

mich wissen lassen, warum seine nicht

Antwort

1

Das Problem arbeiten, weil Sie verwenden ein on* Ereignisattribut, um die Funktion aufzurufen. Dies bedeutet, dass sich this auf das window bezieht, nicht das angeklickte Element.

Um das Problem zu beheben, können Sie Ihren Code verbessern, indem Sie das Attribut on* entfernen und den Ereignishandler mit unauffälligem JS-Code binden. Versuchen Sie folgendes:

$('.btn-success').click(function() { 
 
    var $row = $(this).closest("tr"); 
 
    var $text = $row.find(".id").text(); 
 
    alert($text); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <td >1</td> 
 
    <td class="id">Mid</td> 
 
    <td>Name</td> 
 
    <td>EmailId</td> 
 
    <td>Status</td> 
 
    <td> 
 
     <button type="submit" class="btn btn-success bnt-sm">Approve</button> 
 
     <button type="submit" class="btn btn-danger bnt-sm">Reject</button> 
 
    </td> 
 
    </tr> 
 
</table>

Beachten Sie, wenn Sie ein übergeordnetes Element form haben, dann können Sie das Formular Vorlage stoppen müssen, abhängig von Ihrer Absicht, wenn der Senden-Schaltflächen klicken. Ich würde auch vorschlagen, jedem von ihnen ein name Attribut zu geben, damit Sie identifizieren können, welcher geklickt wurde, als die Anfrage gesendet wurde.