2010-05-19 5 views
0

Je veux modifier la vitrine jquery plugin de la barre de titre, j'ai ajouté le <p class='title> à la balise de description afin que je puisse appliquer des styles css au titre et de séparer cette partie à la description réelle. Script:Jquery recherche et appliquer les styles css

var $a = $("<a />").attr("href", $container.find("a:first").attr("href")).html("<span>" + $container.find("a:first img").attr("alt") + "</span>"); 

var $titleBar = $("<div id='subBar' />").html($a); 

sortie HTML:

<div id="subBar"><span><p class="title">Lorem</p>description here</span></div> 

De la structure ci-dessus comment puis-je ajouter via jquery si css <p class='title'> est rencontré? Je veux ajouter des styles CSS au titre de la classe, ce qui est impossible à css parce que cela est généré par javascript.

+0

et votre question est? – SilentGhost

+0

Les jeux de règles CSS sont appliqués à tout ce qui correspond au DOM - peu importe s'ils proviennent de JS ou de HTML, donc votre instruction "est impossible à css parce qu'elle est générée par javascript" est erronée. – Quentin

+0

Vous essayez de générer un DOM non valide. Un élément 'p' ne peut pas être un élément enfant d'un élément' span'. La correction des erreurs du navigateur causera presque certainement un comportement incohérent qui vous fait trébucher car différents navigateurs essaient de récupérer de votre erreur de différentes manières. – Quentin

Répondre

2

Supprimer l'espace entre le « p » et « .title » dans votre sélection:

$container.find("p.title").css('color','red'); 

(si c'est votre question)

Mise à jour: Votre sélection jquery va encore fonctionner correctement, même si la L'élément DOM auquel vous essayez d'accéder est généré par Javascript. Vous pouvez le tester dans la console javascript (par exemple, Firebug) de votre navigateur. Vous devez simplement vous assurer que votre code est exécuté après le code qui génère l'élément title.

Cependant, avez-vous vraiment besoin d'utiliser Javascript ici? Si vous voulez simplement définir des paragraphes avec la classe 'title' en rouge, ajoutez simplement quelques css:

p.title { color: red; } 
Questions connexes