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>');
1
Kevin Lindmark 23 nov. 2017 à 19:46

3 réponses

Meilleure réponse

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.

Exemple de codepen.

1
delinear 23 nov. 2017 à 17:06

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>
0
Mosh Feu 23 nov. 2017 à 17:14

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>
0
A. Wolff 23 nov. 2017 à 17:13
47460155