2016-07-12 13 views
2

In meinem JavaScript Zugriff auf Array habe ich eine Reihe von auf zwei Arten gespeicherten Datenvon Objekten (oder Array von Arrays) in Javascript

  • als ein Array von Arrays data1[i++] = [id, url, val]

und

  • als Array von Objekten data2[i++] = {id:id, url:url, val:val}

Wenn ich beide Arrays an die Konsole ausgeben werde, sehe ich alle Daten, die korrekt sind.

Als nächstes möchte ich auf sie zugreifen. Für einen ersten Satz von Daten mache ich das:

var total = data1.length; 
     for (var j = 0; j < total; j++) { 
     console.log(data1[j]); 
     } 

und dann für die zweiten Satz dieser

var total = data2.length; 
     for (var j = 0; j < total; j++) { 
     console.log(data2[j].id + data2[j].gradient + data2[j].url); 

     } 

aber wenn ich möchte, dass sie (die Daten von einem Objekt) verwenden

jQuery("#' + data2[j].id + ' .banner-bg").css("background-image", data2[j].url); 

es wirft einen Fehler

Fehler: Syntax err oder nicht erkannte Äußerung: # + data [j] .id +. banner-bg

Wo habe ich einen Fehler gemacht?

Antwort

7

Sie entkommen nur Ihre Angebote falsch. Tun Sie dies:

jQuery('#' + data2[j].id + ' .banner-bg').css("background-image", data2[j].url); 
1

Ihr Argument für jQuery falsch. Versuch das:

var arg = '#' + data2[j].id + '.banner-bg'; 
jQuery(arg).css("background-image", data2[j].url); 
0

Dieses:

jQuery("#' + data2[j].id + ' .banner-bg").css("background-image", data2[j].url); 

Sollte dies:

jQuery("#" + data2[j].id + " .banner-bg").css("background-image", data2[j].url); 

In der ersten, die gesamten Zeichenfolge einschließlich der Bezugnahme auf das Array-Objekt (data2[j].id) wird analysiert durch jQuery.

Lesen Sie mehr über JS-Operatoren here.

Verwandte Themen