Utilisation de jquery pour convertir des divs dans les travées
Je suis en train de modifier le code HTML de sortie d'un widget je n'ai aucun contrôle dessus. Fondamentalement, le problème est que le widget sorties HTML qui utilise les divisions à l'intérieur d'un p qui n'est pas valide..
<div class="widget_output">
<ul>
<li>
<p>
<div>This is a random item</div>
<div>This is a random item</div>
<div>This is a random item</div>
<div>This is a random item</div>
</p>
</li>
<li>
<p>
<div>This is a random item</div>
<div>This is a random item</div>
<div>This is a random item</div>
<div>This is a random item</div>
</p>
</li>
</div>
Mon idée est de changer les divs dans les travées qui sont des éléments en ligne, le code HTML doit alors être valable. J'ai été à la recherche à jquery pour essayer et choisir la classe, puis de convertir ces divs dans les travées. Quelqu'un peut me pointer dans la bonne direction ou un tutoriel de quelqu'un de réaliser quelque chose de similaire?
- Pourquoi ne pas changer de
display: block
àdisplay: inline
? De cette façon, vous ne cassez pas tout le code existant avec le widget qui dépend d'eux étant divs. - Vous ne pouvez pas changer de manière fiable le "html" avec jQuery car il a déjà été analysée dans le DOM. Et quel genre de résultats que vous obtenez dépend du navigateur, chrome crée 2
p
éléments avecdiv
comme frères et sœurs. Merci de créer un code html valide en premier lieu. - Si je pouvais contrôler le HTML en premier lieu, puis ce ne serait pas un problème. Cul, je expressément mentionné dans ma question initiale, je n'ai pas de contrôle sur les widgets HTML pour la sortie.
- Il dépend de la façon dont vous êtes en récupérant les html du widget. Vous pouvez modifier son code html avant d'être analysé.
- Les widgets HTML est envoyé par une API pour autant que je peux voir, je n'ai aucun contrôle dessus 🙁
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de jQuery pour cela, vous pouvez simplement utiliser une expression régulière pour remplacer
<div>
balises avec<span>
balises. Essayez ceci:Démo: http://jsfiddle.net/codef0rmer/daYL4/3/
widgetHTML
variable à l'intérieur demy_custom_js()
fonction?my_custom_js()
fonction, vous obtenez le même écran blanc de la mort?.replace(/<div/g, '<span')
cela devrait fonctionnerJuste collé un JSFiddle ensemble:
http://jsfiddle.net/daYL4/3/
Semble mieux fonctionner que ma proposition initiale.
Mais jetez un oeil à la réponse à cette question, car ils couvrent de quelques bons points:
Utilisation de jQuery pour modifier une balise HTML?
Si vous le faites dans le CSS vous ne souffre d'aucun temps d'exécution de javascript.
CSS