id开头的第一个兄弟的选择器

时间:2017-11-23 16:46:26

标签: jquery insert selector

无法为以下方案找到正确的选择器/ 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>');

3 个答案:

答案 0 :(得分:1)

使用CSS属性starts-with和jQuery的nextAll()选择器的组合:

$('[id^=SIEcat]').nextAll('[id^=SIEcat]').before('<tr class="SIErow"><td>xxxx</td></tr>');

这将选择具有以SIEcat开头的id的元素,然后遍历所有以下兄弟,直到找到以SIEcat开头的下一个id并在其之前插入该行。

Codepen example

答案 1 :(得分:0)

您可以使用&#34;以&#34;开头选择器:^=first方法,如下所示:$('[id^=SIEcat]').first()

&#13;
&#13;
$('[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;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用以下选择器:

&#13;
&#13;
$('[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;
&#13;
&#13;