Avoir des difficultés à trouver le code sélecteur / jquery correct pour le scénario suivant. Vous voulez à partir du point de départ d'un tr avec id commençant par SIEcat insérer une nouvelle ligne avant la ligne suivante commençant par SIEcat?
<table>
<tr id="SIEcat1"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr id="SIEcat2"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
</table>
Etc
Code jusqu'à présent
$("#SIEcat1").selectorcodeXXX.before('<tr class="SIErow">xxxx</tr>');
3 réponses
Utilisez une combinaison de l'attribut CSS starts-with et du sélecteur nextAll () de jQuery:
$('[id^=SIEcat]').nextAll('[id^=SIEcat]').before('<tr class="SIErow"><td>xxxx</td></tr>');
Cela sélectionne l'élément avec un identifiant commençant par SIEcat, puis parcourt tous les frères suivants jusqu'à ce qu'il trouve l'identifiant suivant commençant par SIEcat et insère la ligne avant lui.
Vous pouvez utiliser le sélecteur "start with": ^=
et first
méthode ,
comme ceci: $('[id^=SIEcat]').first()
$('[id^=SIEcat]').first().before('<tr class="SIErow"><td>xxxx</td></tr>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr id="SIEcat1"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr id="SIEcat2"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
</table>
Vous pouvez utiliser le sélecteur suivant:
$('[id^=SIEcat]:not(:first-child)').before('<tr class="SIErow"><td>xxxx</td></tr>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr id="SIEcat1"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr id="SIEcat2"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
<tr class="SIErow"><td>Columncode</td></tr>
</table>
Questions connexes
De nouvelles questions
jquery
jQuery est une bibliothèque JavaScript, pensez également à ajouter la balise JavaScript. jQuery est une bibliothèque JavaScript multi-navigateur populaire qui facilite la traversée du Document Object Model (DOM), la gestion des événements, les animations et les interactions AJAX en minimisant les écarts entre les navigateurs. Une question marquée jQuery doit être liée à jQuery, donc jQuery doit être utilisée par le code en question et au moins les éléments liés à l'utilisation de jQuery doivent être dans la question.