2012-04-11 8 views
0

Ich habe no.of li Element, das den Klassennamen wie c_on hat, muss ich all diese li 's Attribut erhalten und müssen in Array einschieben. Dafür habe ich das gemocht, aber kein Ergebnis, kennt jemand den guten Weg, dies zu tun?Jquery Wie push die Daten, mit Find?

var pushEmpl = [];  
pushEmpl.push($('.demographics').find('ul.ocptn').find($('li.c_on')).each(function(){ return $(this).attr('data-ocp')})); 

aber es wird nicht das Ergebnis erhalten. jede andere Möglichkeit, das zu pushen?

Antwort

2

Sie müssen die push() innerhalb der each() setzen.

var pushEmpl = []; 
$('.demographics').find('ul.ocptn').find($('li.c_on')).each(function(){ pushEmpl.push($(this).attr('data-ocp')); }); 
+0

wie nur einzigartigen Wert zu drücken? gibt es irgendeinen Weg? (li.c_on eindeutige Werte ohne zu wiederholen) – 3gwebtrain

+0

Verwenden Sie '.indexOf()', um zu prüfen, ob der Wert bereits im Array ist. Zum Beispiel 'if (pushEmpl.indexOf ($ (this) .attr ('data-ocp')) == -1) {pushEmpl.push ($ (this) .attr ('data-ocp')); } 'Referenz: http://www.tutorialspoint.com/javascript/array_indexof.htm – AndrewR

0

Ich schlage vor, aus der .each() Funktion drücken.

$('.demographics').find('ul.ocptn').find($('li.c_on')).each(function(){pushEmpl.push($(this).attr('data-ocp'))})); 
+0

wie nur einzigartigen Wert zu schieben? gibt es irgendeinen Weg? (li.c_on eindeutige Werte ohne zu wiederholen) – 3gwebtrain