2015-04-20 14 views
5

So ist der Kontext dies:.get() .prop() nicht zusammen arbeiten jquery

Ich habe einige Auswahleingänge mit Städten, wenn sich der Wert ändert ich für die ID des Elternknotens 9 Ebenen suchen müssen über dem Select-Eingang, dann teilen Sie es, und dann den letzten Teil des Arrays durch Split erhalten.

Ich weiß, dass die ID des Zielknotens im Format "someName_SomeNumber" wie "node_1234" ist.

Ich habe versucht, dass zu dieser Funktion zu tun: "$ (this) .parents() erhalten (8)"

$("select[name*=id_city_]").change(function(){ 
      alert($(this).parents().get(8).prop("id").split("_").last()); 
      }); 

alles funktioniert gut, wenn ich ausführen, aber wenn ich versuche zu bekommen die ID mit prop sagt, dass Prop keine Funktion ist.

danke im voraus.

Antwort

5

get() erhalten Sie den zugrunde liegenden nativen DOM-Knoten, der keine prop-Methode hat.

Sie wollen eq()

$(this).parents().eq(8).prop("id").split("_").pop() 

oder benutzen Sie einfach die native id Eigenschaft

$(this).parents().get(8).id.split("_").pop() 

Beachten Sie auch, dass last() ein jQuery-Methode ist, die native Art und Weise das letzte Element in einer Reihe zu bekommen, Sie pop es Ende

+1

'$ (this) .parents(). Get (8) .attr (" id "). Split (" _ "). Pop()' ist auch eine andere Alternative – Bassem

+1

@BassemDy - in diesem Fall ist das ein ausgezeichneter Vorschlag, denn IDs 'attr()' ist die geeignetere Methode, nicht 'prop()', auch wenn die ID ebenfalls eine Eigenschaft ist und beide funktionieren. – adeneo

+0

danke. Ich wusste, dass ich so etwas vermisste. – Xuaspick

Verwandte Themen