Elementy w tablicy są undefined

0
			values = new Array(5);
			$(".abc").each(function() {
				var $el = $(this);
				values.push($el.text());
				$el.text('0');
				alert(values[0]); //kontrolnie
			});

Kiedy alertuję sobie

$el.text()

to wyświetla oczekiwaną zawartość, a alert na elemencie tablicy wyświetla undefined

 . O co chodzi?
0

Zmieniłem definicję na

var values = [];

i już działa.

0

Twój kod wyprodukował tablicę 5-elementową, a później na koniec pushujesz dodatkowe elementy(element 5,6...).
Generalnie odradzałbym w Javascript korzystanie z new Array:

// If x1 is a number and it is a natural number, the length will be x1.
// If x1 is a number but not a natural number, this will throw an exception.
// Otherwise, the array will have one element with x1 as its value.
var a3 = new Array(x1); 

Zasady nie są skomplikowane, ale łatwo się na nich czasami przejechać :/

0

Co to znaczy "alertuję"? .text() zwraca tekst, albo ustawia go na podana wartość.
Jak tworzysz tablicę lepiej jest zrobić var values = []; tak samo jak tworzysz obiekt, to nie rób var foo = new Object(); tylko var boo = {};
.push() wpycha element na kolejną wolną pozycję. Przez Twój zapis, który poprawiłem linijkę wyżej pojawił się ten problem. Utworzyłeś tablicę 5 elementową i w wolne miejsca musiała zostać przypisana jakaś "wartość" tzn. undefined. Dlatego po przejsciu przez pętlę twoja tablica ma wartości [undefined x 5, tekst_1, tekst_2, tekst_3 itd]

Tutaj masz demo
https://jsbin.com/zalomudamo/edit?html,js,console

1 użytkowników online, w tym zalogowanych: 0, gości: 1