Wenn ich das folgende Javascript ausführe, schlägt es fehl, wenn input_array[input_array.length] = id; nicht auskommentiert ist. Kann jemand sehen, was das verursacht?

function cat_images_low_lag () {
    var input_array = new array ();

    cat_images = $(".category-description").next().find("img");
    cat_images.each(function () { 
        url = $(this).parent().attr("href");
        id = url.split("id=");
        id = id[1];

        input_array[input_array.length] = id;
    });
    alert ("trst");
    alert(input_array.join("\n"));
}   

Prost!

1
tracer tong 2 Nov. 2012 im 20:43

3 Antworten

Beste Antwort

Als erstes ersetzen:

var input_array = new array ();

Mit:

var input_array = new Array();

Und verwenden Sie dies, um Folgendes einzufügen:

input_array.push(id);

Oder direkt hinzufügen:

input_array[input_array.length] = id;

Andere Möglichkeiten zum Initialisieren von Arrays:

var input_array = [];
3
Praveen Kumar Purushothaman 2 Nov. 2012 im 16:44

Ihre Initialisierung des Arrays ist falsch

var input_array = new array ();

Sie sollten die Kurzschrift verwenden

var input_array = [];

Oder

var input_array = new Array();

Um zu vermeiden, dass cat_images eine Variable im globalen Bereich ist, sollten Sie darüber hinaus in Betracht ziehen, sie lokal so zu definieren

var cat_images = $(".category-description").next().find("img");
0
Travis J 2 Nov. 2012 im 16:50

Andere bemerkten das Großschreibungsproblem, aber da Sie jQuery verwenden, ist eine bessere Möglichkeit, das Array zu erstellen, folgende:

function cat_images_low_lag () {
    var input_array = $(".category-description + * img").map(function () { 
        return this.parentNode.href.split("id=")[1];
    }).toArray();

    alert ("trst");
    alert(input_array.join("\n"));
}
1
I Hate Lazy 2 Nov. 2012 im 17:01