按类分类的jQuery Child Selector

时间:2014-08-17 17:29:28

标签: jquery parent-child insertafter

我有以下html结构,并希望在被起诉的地方使用jQuery插入div

<div class="item" data-url-id="intro">
    <div class="title-wrapper">      
        ...
    </div>
    <!-- want to insert the element here -->
    <div class="content-wrapper">
        ...
    </div>
</div>

我正在使用此代码:

$( "div[class='item'][data-url-id='intro'] > div[class='title-wrapper']" ).after( "<div class='...'>...</div>");

基本上,'inside'div没有id,因此必须由class识别。

我认为上面的意思是“在div类'title-wrapper'之后插入一个元素,它是div的子级,其类为'item'且属性为' data-url-id'的值是'intro'“

非常感谢任何想法!

此致

西风

3 个答案:

答案 0 :(得分:1)

jquery选择器可以简化一点:

$('.item[data-url-id=intro] > .title-wrapper').after('<div>Inserted Element</div>');

这是一个有效的工作人员: http://jsfiddle.net/2ys5j0ac/

答案 1 :(得分:1)

使用after函数是正确的,但您不需要指定这么多的选择器。你也可以使用点&#39;。&#39; operator作为类选择器。对于你的情况,它可以是:

$(".title-wrapper").after( "<div class='...'>...</div>");

但是如果您希望另一个div类 title-wrapper 哪个不想插入div,则可以将其写为。

$(".item > .title-wrapper").after( "<div class='...'>...</div>");

答案 2 :(得分:0)

如果title-wrapper是此类的唯一div,您可以尝试以下代码:

$( ".title-wrapper" ).after( "<div>new div</div>" );

或者你可以试试这个:

$( "div[class='item'][data-url-id='intro'] > div[class='title-wrapper']" ).after( "<div>new div</div>");