2009-11-28 5 views
22

Ich habe eine bestimmte Anzahl von Div-Boxen, die alle den gleichen Klassennamen haben. Ich versuche, etwas auf sie alle anzuwenden, aber habe kein Glück. Der Code, den ich bisher gebaut istjquery: get Elemente nach Klassennamen und fügen Sie css zu jedem von ihnen

$(document).ready(function(){ 
    elements = $('div.easy_editor'); 
    elements.each(function() { $(this).css("border","9px solid red"); }); 
    //elements[0].css("border","9px solid red"); 
}); 

Könnten Sie mir bitte sagen, was ich tue, falsch

+0

Der Code ist nicht zu elegant, aber richtig. – alex2k8

Antwort

40

Sie können versuchen, diese

$('div.easy_editor').css({'border-width':'9px', 'border-style':'solid', 'border-color':'red'}); 

Die $('div.easy_editor') bezieht sich auf eine Sammlung aller divs, die haben der Klasse easy Editor schon. Es gibt keine Notwendigkeit, jedes() zu verwenden, es sei denn, es gab eine Funktion, die Sie auf jedem ausführen wollten. Die Methode css() gilt tatsächlich für alle divs, die Sie finden.

+0

Danke das hat funktioniert! Die wahre Quelle von pronlem war (alberne Dummheit), dass ich Boxen als Spannen erstellt habe, aber in jQuery versuchte, auf sie als divs * facepalm * zuzugreifen – Eugene

6

Was macht jQuery einfach zu bedienen ist, dass Sie keine Attribute für jedes Element anwenden müssen. Das jQuery-Objekt enthält ein Array von Elementen, und die Methoden des jQuery-Objekts wenden dieselben Attribute auf alle Elemente im Array an.

Es gibt auch eine kürzere Form für $(document).ready(function(){...}) in .

Also, das alles ist, was Sie brauchen:

$(function(){ 
    $('div.easy_editor').css('border','9px solid red'); 
}); 

Wenn Sie den Code wollen mit dieser Klasse für jedes Element zu arbeiten, kann man einfach die Klasse in der Auswahl ohne den Tag-Namen angeben:

$(function(){ 
    $('.easy_editor').css('border','9px solid red'); 
}); 
Verwandte Themen