Ich habe Schwierigkeiten herauszufinden, die beste Methode, um Folgendes zu tun. Ich bekomme irgendwo von 0 bis x Anzahl der Stringnamen, zB: Zillow, Trulia. Ich möchte ein Bild mit diesen String-Namen verknüpfen und sie dann in einer Liste anzeigen. Ich versuche, eine switch-Anweisung zu machen, bin mir aber nicht sicher, ob das für mehr als eine Bedingung funktioniert ... bitte korrigieren Sie mich, wenn ich falsch liege.Looping durch ein Split-Array und Ausgabe mit WrapInner
So zum Beispiel die Variablenliste hält zwei Elemente (Zillow/Trulia), wie kann ich ky split
Funktion Variable für mehrere Werte überprüfen und dann den Ausgang hinzufügen: $('#review-icon-list').wrapInner('<li class="review-icon">' + zillowImg + '</li>');
Gerade jetzt meine Schaltergehäuse werfen wird ein unerwarteter Token-Fehler, aber ich glaube nicht, dass ich die richtige Methode benutze. Weiß jemand wie ich das machen würde? Würde ich eine Art Schleife machen und wenn ja, wie würde ich es strukturieren?
var reviewSiteNames = 'Zillow,Trulia';
reviewSiteNames = reviewSiteNames.split(',');
console.log(reviewSiteNames);
var zillowImg = '<img src="https://s3.amazonaws.com/retain-static/www/zillow.jpg" alt="Zillow">';
var truliaImg = '<img src="https://s3.amazonaws.com/retain-static/www/trulia.png" alt="Trulia">';
if (reviewSiteNames == '') {
$('#no-current-reviewSites').html('No review sites currently added')
}
/*else if (reviewSiteNames) {
$('#review-icon-list').wrapInner('<li class="review-icon"></li>');
}*/
switch (true) {
case (reviewSiteNames.indexOf('Zillow') >= 0):
$('#review-icon-list').wrapInner('<li class="review-icon">' + zillowImg + '</li>');
break;
case (reviewSiteNames.indexOf('Realtor.com') >= 0):
$('#review-icon-list').wrapInner('<li class="review-icon">' + realtorDotComImg + '</li>');
break;
case (reviewSiteNames.indexOf('Trulia') >= 0):
$('#review-icon-list').wrapInner('<li class="review-icon">' + truliaImg + '</li>');
default: return '';
};
Neue Methode, dies zu versuchen. Das einzige Bild, das angezeigt wird, ist die letzte if-Anweisung in der each
-Funktion.
$.each(reviewSiteNames, function (index, value) {
if (reviewSiteNames.includes('Zillow')) {
$('#review-icon-current').wrapInner('<li class="review-icon">' + zillowImg + '</li>');
}
if (reviewSiteNames.includes('Trulia')) {
$('#review-icon-current').wrapInner('<li class="review-icon">' + truliaImg + '</li>');
}
//return (value !== 'three');
});
Muss es 'reviewSiteNames.indexOf ('Trulia')' sein? Warum kannst du nicht stattdessen '===' verwenden? –
@ibrahimmahrir Ich benutzte ein Beispiel von dieser Seite, die 'indexOf' verwendete, also nahm ich an, dass das der richtige Weg war, aber wenn' === 'funktioniert, dann ist das in Ordnung. Ich bin mir nicht sicher, wie ich das zur Arbeit bringen soll. – Paul
'===' ist ein Operator, der prüft, ob der Typ auch übereinstimmt. Das ist nicht das Problem. 'switch' Aussage wird mit Sicherheit missbraucht. –