我在第n种元素之后使用after / insertafter后出现问题。我试图有条件地添加一个新的部分。如果我使用类似.html()之类的选择器,它会按预期工作,但之后无法添加。我也尝试过使用wrap并选择第n种类型,但同样的交易。这是选择器。这不起作用吗?
$('.wrap div:nth-of-type(2)').after('<div id="test">yo</div>');
$('<p> hello </p>').insertAfter('.mgrid_table table:nth-of-type(2)');
代码:
$('.mgrid_table table:nth-of-type(2)').after('<p>hello</p>');
$('.mgrid_table').eq(1).after('<p>yo</p>');
$('<p> hola</p>').insertAfter('.mgrid_table table:nth-of-type(2)');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class= "mgrid_table">
<tr>test <td>info 1</td></tr>
</table>
<table class= "mgrid_table">
<tr>test2<td>info 1</td></tr>
</table>
<table class= "mgrid_table">
<tr>test3<td>info 1</td></tr>
</table>
答案 0 :(得分:1)
你的选择器.mgrid_table table:nth-of-type(2)
错了。这会在类table
的元素中搜索第二个mgrid_table
。但是表格不在该类中,是该类的元素。正确的选择器是table.mgrid_table:nth-of-type(2)
。
请注意,x<space>y
形式的选择器意味着在y
内寻找x
。
$('table.mgrid_table:nth-of-type(2)').after('<p>hello</p>');
$('.mgrid_table').eq(1).after('<p>yo</p>');
$('<p> hola</p>').insertAfter('table.mgrid_table:nth-of-type(2)');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class= "mgrid_table">
<tr>test <td>info 1</td></tr>
</table>
<table class= "mgrid_table">
<tr>test2<td>info 2</td></tr>
</table>
<table class= "mgrid_table">
<tr>test3<td>info 3</td></tr>
</table>
&#13;