[英]Adding new row before rows which their td has a specific class
我正在研究以下代码。 为什么我不能添加新行.green
的任何前tr
具有td
与类.red
如您所见,以下代码在tr内添加了新的tr:
$( '<tr class="green"><td>new row<td></tr>' ).insertBefore( " tr > td.red" );
.red{ background:red; } .green{ background:green; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr> <td>test</td> <td>test2</td> </tr> <tr> <td class="red">test</td> <td>test2</td> </tr> </table>
您需要在插入td.red
tr
之前使用:has()
。
.insertBefore( " tr:has(td.red)" );
看一下这个:
$( '<tr class="green"><td>new row<td></tr>' ).insertBefore( " tr:has(td.red)" );
.red{ background:red; } .green{ background:green; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr> <td>test</td> <td>test2</td> </tr> <tr> <td class="red">test</td> <td>test2</td> </tr> </table>
.parent()
与.before()
$( " tr > td.red" ).parent( ).before( '<tr class="green"><td>new row<td></tr>');
.red{ background:red; } .green{ background:green; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr> <td>test</td> <td>test2</td> </tr> <tr> <td class="red">test</td> <td>test2</td> </tr> </table>
您的选择器用于td
,而不用于tr
。
您需要使用:has
选择器来检查tr
包含带有红色类的td
$( '<tr class="green"><td>new row<td></tr>' ).insertBefore( " tr:has(td.red)" );
演示版
$( '<tr class="green"><td>new row<td></tr>' ).insertBefore( " tr:has(td.red)" );
.red{ background:red; } .green{ background:green; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr> <td>test</td> <td>test2</td> </tr> <tr> <td class="red">test</td> <td>test2</td> </tr> </table>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.