无法为以下方案找到正确的选择器/ jquery代码。想从一个以id开始的tr的起点开始用SIEcat在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>
等
到目前为止代码
$("#SIEcat1").selectorcodeXXX.before('<tr class="SIErow">xxxx</tr>');
答案 0 :(得分:1)
使用CSS属性starts-with和jQuery的nextAll()选择器的组合:
$('[id^=SIEcat]').nextAll('[id^=SIEcat]').before('<tr class="SIErow"><td>xxxx</td></tr>');
这将选择具有以SIEcat开头的id的元素,然后遍历所有以下兄弟,直到找到以SIEcat开头的下一个id并在其之前插入该行。
答案 1 :(得分:0)
您可以使用&#34;以&#34;开头选择器:^=
和first
方法,如下所示:$('[id^=SIEcat]').first()
$('[id^=SIEcat]').first().before('<tr class="SIErow"><td>xxxx</td></tr>');
&#13;
<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>
&#13;
答案 2 :(得分:0)
您可以使用以下选择器:
$('[id^=SIEcat]:not(:first-child)').before('<tr class="SIErow"><td>xxxx</td></tr>');
&#13;
<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>
&#13;