jquery在nth-of-type之后使用/ insertafter后使用

时间:2017-06-26 16:26:20

标签: jquery

我在第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>

1 个答案:

答案 0 :(得分:1)

你的选择器.mgrid_table table:nth-of-type(2)错了。这会在类table的元素中搜索第二个mgrid_table。但是表格不在该类中,该类的元素。正确的选择器是table.mgrid_table:nth-of-type(2)

请注意,x<space>y形式的选择器意味着在y内寻找x

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