2016-04-16 9 views
-2

Warum funktioniert das nicht?Wie verwende ich einen CSS-Selektor in einer Javascript-Liste?

var animals = ['Cat', 'Dog'].valueOf; 

if ("animals:contains(Cat)") { 
    // ... 
} 
+0

Javascript weiß nichts über CSS. Sie müssen eine JavaScript-Funktion verwenden, nicht einen CSS-Selektor. –

+2

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. –

Antwort

0

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.

0

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.

0

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?.

+0

So etwas Ähnliches. Mit anderen Worten, was ich brauche, ist: Wenn dies die Änderung CSS eines anderen Elements enthält – Riba

Verwandte Themen