无法选择n-child div

时间:2013-03-19 12:22:29

标签: jquery html

我试图移动一些div,但是我似乎无法选择它们只是通过对象对象:

http://jsfiddle.net/kL3c8/1/

<div class="partnerGroupContent">
   <div class="column"> 
        <div class="sponsor">1</div>
        <div class="sponsor">2</div>
   </div>
    <div class="column1"> 
        <div class="sponsor">3</div>
        <div class="sponsor">4</div>
   </div>
</div>

var rowCount = 2

var myColumn = $('.partnerGroupContent:nth-child(2)')

if (rowCount == 2) {

$('.partnerGroupContent').after('<div class="partnerGroupContent2">' + myColumn + '</div>');

}

感谢任何帮助,谢谢!

4 个答案:

答案 0 :(得分:4)

您正在将jQuery对象连接到字符串,它不会那样工作。你误解了:nth-child。它是一个过滤器,用于过滤集合中父元素为nth子元素的元素,因此您可能需要这样:

$('.partnerGroupContent > :nth-child(2)')

$('.partnerGroupContent').after(
    $('<div>', {
        'class': 'partnerGroupContent2'
    }).append(myColumn) //append the actual element
                    //don't concatenate strings
)

http://jsfiddle.net/kL3c8/6/

答案 1 :(得分:1)

问题是:$('.partnerGroupContent:nth-child(2))没有返回任何内容。

使用:var myColumn = $('.partnerGroupContent').children(2);

然后使用partnerGrouphtml

将其附加到myColumn.html()

我已更新您的小提琴以显示内容更新:

http://jsfiddle.net/kL3c8/5/

答案 2 :(得分:0)

尝试

var rowCount = 2

var myColumn = $('.partnerGroupContent > :nth-child(2)')

if (rowCount == 2) {

$('<div class="partnerGroupContent2"></div>').insertAfter('.partnerGroupContent').append(myColumn.clone());

}

演示:Fiddle

答案 3 :(得分:0)

即使你可以通过

获得所有列div的数组
var rowCount = 2
var columnArray = $('div.partnerGroupContent > div');

并通过它的数组索引获取特定列div

if (rowCount == 2) {
   var myColumn = $(divArray[rowCount-1]).html();
   $('.partnerGroupContent').after('<div class="partnerGroupContent2">' + myColumn +     '</div>');
}