Je voudrais ajouter un Dans l'exemple ci-dessous, la première div aurait la classe Notez que le code HTML est généré automatiquement. P> p> class code> à chaque parent div code> et faire correspondre cette classe correspond au contenu de l'étiquette code> code> dans la DIV avec un Union d'union ajoutée entre chaque mot. enfant-1-nom code>, le deuxième enfant-1-nom-nom code>, Le troisième enfant-1-age code>. Toute direction serait grandement appréciée! P> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 name</label>
<span class="net"><input type="text"></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 last name</label>
<span class="net"><input type="text"></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 age</label>
<span class="net"><input type="text"></span>
</span>
</div>
6 Réponses :
Vous obtenez d'abord tous les éléments code> code>. Après avoir extraire l'élément parent p> div code> et ajoutez le texte code> de l'étiquette code> code> comme classname code> de ce code>. <div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 name</label>
<span class="net"><input type="text"></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 last name</label>
<span class="net"><input type="text"></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 age</label>
<span class="net"><input type="text"></span>
</span>
</div>
Le moyen le plus simple d'atteindre cela serait de boucler à travers tous les éléments p> .wrapable code>, récupérez leur ancêtre div code> ancêtre, puis définissez la classe sur celle du texte de L'étiquette >, avec un de base remplacer () code> opération sur le blanchiment, quelque chose comme ceci: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 name</label>
<span class="net"><input type="text"></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 last name</label>
<span class="net"><input type="text"></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 age</label>
<span class="net"><input type="text"></span>
</span>
</div>
Vous pouvez récupérer chaque p> .wrapable code> classe et ajouter une classe à son le plus proche code> 'div'.
Utilisation de Regex Remplacer les espaces dans des traits d'union. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 name</label>
<span class="net"><input type="text"></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 last name</label>
<span class="net"><input type="text"></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 age</label>
<span class="net"><input type="text"></span>
</span>
</div>
Voici un moyen assez simple de le faire: il suffit de trouver le texte, de retirer les espaces à l'extérieur, de convertir en minuscule et de remplacer tout autre blancheur avec des tirets.
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 name</label>
<span class="net"><input type="text"></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 last name</label>
<span class="net"><input type="text"></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 age</label>
<span class="net"><input type="text"></span>
</span>
</div>Vérifiez le code, espérons que cela vous aidera.
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 name</label>
<span class="net"><input type="text"/></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 last name</label>
<span class="net"><input type="text"/></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 age</label>
<span class="net"><input type="text"/></span>
</span>
</div>
<script>
$(document).ready(function() {
$(".wrapable").each(function() {
// alert($(this).text());
var data = $(this).text();
$(this)
.closest("div")
.addClass(
$(this)
.text()
.trim()
.replace(/\s+/g, "-")
);
});
});
</script>
Ceci pourrait être une solution javascript simple sans utiliser jQuery:
Regardez mes commentaires pour comprendre ce qui se passe. P>
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 name</label>
<span class="net"><input type="text"></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 last name</label>
<span class="net"><input type="text"></span>
</span>
</div>
<div>
<span class="req"></span>
<span>
<label class="wrapable">child 1 age</label>
<span class="net"><input type="text"></span>
</span>
</div>
Qu'est-ce que tu as essayé jusque-là?