2017-05-08 2 views
0

ich ein Problem mit diesem Code habe ...Graf DIVs mit bestimmten Klasse, wo Klassenname ist eine Variable

$("select#kronologia option").each(function() { 
    var classname=$(this).val(); 
    alert($("article."+classname).length); 
}); 

Fehler: Syntaxfehler, unerkannt Ausdruck: Artikel.

Ich möchte divs mit bestimmter Klasse zählen, wo der Klassenname aus einem Auswahlfeld kommt. Ich habe Syntaxfehler bekommen. Siehe oben ...

Wenn ich diese Zeile ändern

var classname=$(this).val(); 

dieser

var classname="2013"; 

das Skript in Ordnung ist.

Jede Hilfe wäre toll ...

+0

Ich habe eine einfache JSFiddle erstellt: https://jsfiddle.net/myae5438/. Ihr Code scheint korrekt zu sein, sind Sie sicher, dass dieses Stück oder dieser Code das Problem verursacht hat? Kannst du deinen HTML auch zeigen? – SheperdOfFire

+0

OK, Sie haben Recht. Mein Code ist in einem onchange, vielleicht theres das Problem. Ich habe die Geige modifiziert, könntest du das bitte überprüfen? https://jsfiddle.net/myae5438/2/ –

Antwort

0

Hier ist die aktualisierte JSFiddle.

Das Problem ist, dass Ihr erster Wert leer ist, deshalb versucht jquery Elemente zu finden, die article. (leerer Optionswert) entsprechen, das ist in der Tat ein falscher Ausdruck. Wie Sie in der Geige sehen können, wenn der Wert leer ist, wird es übersprungen und Ihr Skript funktioniert. Natürlich können Sie das Verhalten eines leeren Wertes Ihren eigenen Bedürfnissen anpassen.

$('select#kronologia').on('change', function(e) { 
    $(this).find('option').each(function() { 
     var classname = $(this).val(); 

     if (classname === '') { 
      return true; 
     } 

     alert($('article.'+classname).length); 
    }); 
}); 
+0

Vielen Dank! Das ist richtig! Du hast meinen Tag gerettet! :) –

0

Versuchen var classname=$(this).val();-var classname=str($(this).val());

0

was da ist, Artikel zu ändern? Ist es ein Klasse-Präfix oder die ID-Präfix

$("select#kronologia option").each(function() { 
    var classname=$(this).val(); 
    alert($(".article"+classname).length); 
}); 

oder

$("select#kronologia option").each(function() { 
    var classname=$(this).val(); 
    alert($("#article"+classname).length); 
}); 
+0

Artikel keine Klasse oder ID ist ... Es ist ein html5 Element

Und ich möchte

0

Wenn Sie für die Klasse suchen mit JQuery sollte Präfix sein „“ eine Grundregel. Sie haben alles gut gemacht nur Präfix für die Suche mit Klassennamen wie unten anhängen.

alert($(".article"+classname).length); 

http://codepen.io/JayPatel758/pen/wdpavo

+0

Artikel ist nicht rechnen Klasse oder ID ... Es ist ein html5 Element

Und ich möchte zählen

Verwandte Themen