Warum funktioniert das nicht?Wie verwende ich einen CSS-Selektor in einer Javascript-Liste?
var animals = ['Cat', 'Dog'].valueOf;
if ("animals:contains(Cat)") {
// ...
}
Warum funktioniert das nicht?Wie verwende ich einen CSS-Selektor in einer Javascript-Liste?
var animals = ['Cat', 'Dog'].valueOf;
if ("animals:contains(Cat)") {
// ...
}
Sie verwenden möchten die indexOf
method of Array
:
if(animals.indexOf('Cat') != -1){
// ...
}
Jede Zeichenfolge, die nicht leer ist (""
) truthy sein wird, so dass der Körper des if
wird immer ausgeführt, wenn Sie if("some string")
tun.
Sie können einen CSS-Selektor für ein Array in Javascript nicht verwenden. Sie können indexOf
verwenden, um festzustellen, ob eine bestimmte Zeichenfolge in dem Array vorhanden ist.
Die einzige Zeit, die Sie wirklich einen CSS-Selektor in Javascript verwenden würden, ist, wenn Sie das DOM abfragen.
Es scheint, dass Sie so etwas wie JSONSelect wollen:
JSONSelect definiert eine Sprache sehr ähnlich in Syntax und Struktur zu CSS3-Selektoren. JSONSelect-Ausdrücke sind Muster, die mit JSON-Dokumenten verglichen werden können.
Beachten Sie, dass :contains
ist kein Standard CSS psedo-Klasse, aber JSONSelect bietet es als Erweiterung.
var animals = ['Cat', 'Dog'];
if (JSONSelect.match(':contains("Cat")', animals).length) // truthy
document.write('There is a cat');
if (JSONSelect.match(':contains("Elephant")', animals).length) // falsy
document.write('There is an elephant');
<script src="http://jsonselect.org/js/jsonselect.js"></script>
Aber natürlich ist dies viel des Guten. Bessere Verwendung Ansätze erläutert in How do I check if an array includes an object in JavaScript?.
So etwas Ähnliches. Mit anderen Worten, was ich brauche, ist: Wenn dies die Änderung CSS eines anderen Elements enthält – Riba
Javascript weiß nichts über CSS. Sie müssen eine JavaScript-Funktion verwenden, nicht einen CSS-Selektor. –
Welche HTML verwenden Sie und welches Ergebnis erwarten Sie? Was Ihr 'if' angeht, so scheint es, als würden Sie' if (animals.indexOf ('cat')> -1) 'verwenden, indem Sie [' Array.prototype.indexOf() '] verwenden (https: // developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf). Der Grund, warum es nicht funktioniert, ist, dass Sie JavaScript nicht verwenden. –