parentNode es JS nativo, donde parent() no lo es.
Lo que está haciendo en su código es envolver los elementos DOM en el objeto jQuery para que pueda llamar a los métodos específicos de jQuery en él. Por lo tanto, no puede llamar a index() solo en this.parentNode, pero puede invocarlo en $ (this.parentNode) .index() ya que se convirtió en un objeto jQuery.
Su primer ejemplo ajusta el elemento DOM actual como un objeto jQuery y utiliza el método jQuery parent() para recuperar su padre y el índice de ese elemento primario. Su segundo ejemplo directamente envuelve el nodo primario directamente.
Si es ampliamente compatible, ¿cuál sería la diferencia en esta situación? – r0m4n