2016-06-03 12 views
0

Ich habe versucht, den Index des Eingabefeldes mit $(this).index() zu bekommen und bekam einen falschen Index.

Nach dem Finden in Google angewendet $("input").index(this) und es hat funktioniert. So neugierig zu wissen, was ist der Unterschied in diesen beiden Methoden und warum der frühere hat nicht funktioniert.

+0

https://api.jquery.com/index/ – Satpal

Antwort

3

$(this).index() wird den Index in Bezug auf das Elternelement zurückgeben.

$("input").index(this) gibt den Index des Elements "passes" basierend auf der Menge der Elemente zurück, auf denen .index() aufgerufen wurde.

betrachten diese HTML

<table> 
    <tr> 
    <td> 
     <input type="text"> 
    </td> 
    </tr> 
    <tr> 
    <td> 
     <input type="text"> 
    </td> 
    </tr> 
</table> 

dann den Code,

$("input").click(function() { 
    alert($(this).index()); 
    alert($("input").index(this)); 
}); 
  • alert($(this).index()); wird immer wachsam 0, weil sein ein und nur untergeordnetes Element des übergeordneten TD.
  • alert($("input").index(this)); gibt 0 für den ersten Eingang und 1 für den nächsten Eingang zurück.

prüfen diese Demo

+1

Für mehr Informationen, sehen Sie den Abschnitt unter "Werte zurückgeben" hier: https://api.jquery.com/ index/ – Kittsil

+1

Nice one @anoopjoshi. Ich mochte es. – Jai

+0

@Jai Danke :) –

Verwandte Themen