2011-01-07 7 views
0

Javascript Neuling hier, nur versucht, dieses Bit Code zu zwicken. Es prüft auf alle HTML-Elemente mit einem Titelattribut und fügt die Klasse 'tooltipParent' hinzu.Wie JavaScript für Loop-Kriterien ändern? Newbie Frage

Ich möchte, dass die Klasse nur Elemente mit einem Titelattribut hinzufügen UND die Klasse 'Tooltip'. Ich denke, ich muss etwas zu der für Schleife hinzufügen, um nach dieser zusätzlichen Klasse zu überprüfen?

// loop through all objects with a title attribute 
var titles=$('[title]'); 

// use an efficient for loop as there may be a lot to cycle through 
for(var i=titles.length-1;i>-1;i--){ 

    // titled object must be position:relative 
    $(titles[i]).addClass('tooltipParent'); 

} 

Vielen Dank!

+0

Dies ist nicht nur Javascript, aber jQuery, es ist schön, es zu sagen, wie Google Besucher verstehen können, worum es geht. Die Antwort des Einsamen Tages ist richtig btw – Jonathan

+0

@ Jonathan: Meins ist nicht? –

+0

@Tomalak: Ich habe eine Minute, bevor du deine Antwort geschrieben hast, – Jonathan

Antwort

3

können Sie setzen die Klasse Anforderung in Ihrer ursprünglichen Selektor:

$('*.tooltip[title]').addClass('tooltipParent'); 

Das bedeutet

  • alle Elemente wählen (*)
  • mit der Klasse "Tooltip" (.tooltip)
  • und ein Titelattribut gesetzt ([title])
  • und fügen Sie die Klasse tooltipParent
1

Sie können Ihre jQuery-Selektor auf der ersten Linie erstrecken, die richtigen Elemente auszuwählen. Sehen Sie sich the jQuery documentation für Hilfe an. Es ist wahrscheinlich so etwas wie var titles = $('.tooltip[title]').

+1

Ich sehe auch nicht, warum Sie "eine effiziente for-Schleife" verwenden. jQuery kann über Sammlungen selbst iterieren. Wenden Sie die Eigenschaft auf das gesamte Ergebnisset an, wie _lonesomeday_ Ihnen in seiner Antwort gezeigt hat. –