2015-07-04 74 views
0

我有這樣的代碼:把每一個第一次和每2格在不同的div

<div id="posts"> 
<div class="post">1st</div> 
<div class="post">2nd</div> 
<div class="post">1st</div> 
<div class="post">2nd</div> 
<div class="post">1st</div> 
<div class="post">2nd</div> 
</div> 

,我想這是什麼:

<div id="posts"> 
<div id="postsLeft"> 
<div class="post">1st</div> 
<div class="post">1st</div> 
<div class="post">1st</div> 
</div> 
<div id="postsRight"> 
<div class="post">2nd</div> 
<div class="post">2nd</div> 
<div class="post">2nd</div> 
</div> 
</div> 

所以我想每一個第一類崗位投入postLeft和每一個secound類的帖子投入postRight。我不會自己排序的原因是因爲我使用ajax和div class post是在用戶想要獲取更多帖子時加載的。腳本必須使用此腳本工作http://jsfiddle.net/tq6a202n/1/

+1

那你有這麼遠,你在哪裏卡住?另外,不會有一個簡單的'.post:nth-​​child(even){float:right}'這樣做嗎? –

+0

你如何確定某件事是頭等艙還是二等艙?很明顯,在結果中,你通過內部文本區分,但你如何區分Ajax響應? –

+0

這是我的第一個選擇,但它沒有效果 – fr33jumper

回答

0

一種可能的方法 - 你可以添加以下代碼

var postsLeft = $("<div></div>"); // create wrapper for left 
var postsRight = $("<div></div>"); // create wrapper for right 
postsLeft.attr("id", "postsLeft"); // add id for left 
postsRight.attr("id", "postsRight"); // add id for right 
var counter = 0; // counter to check for even and odd 
$("#posts").find("div.post").each(function(){ // iterate over post elements 
    if (counter % 2 === 0) { 
     postsLeft.append($(this).clone()); // For odd append here 
    } else { 
     postsRight.append($(this).clone()); // For even append here 

    } 
    counter++; // update counter 

}); 

$("#posts").html(""); // Empty div 
$("#posts").append(postsLeft); // Append left div 
$("#posts").append(postsRight); // Append right div 

僅供參考 - http://plnkr.co/edit/qIip2X8rTKi8naFiM27y?p=preview

0

你這裏工作示例答案:

$(document).ready(function() { 
 
$('#posts').append('<div id="postsLeft"></div><div id="postsRight"></div>'); 
 
    $('#posts div').not('#postsLeft,#postsRight').each(function() { 
 
     if($(this).text()=='1st'){ 
 
      $(this).appendTo('#posts #postsLeft'); 
 
     }else{ 
 
      $(this).appendTo('#posts #postsRight'); 
 
     } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
 

 
<div id="posts"> 
 
<div class="post">1st</div> 
 
<div class="post">2nd</div> 
 
<div class="post">1st</div> 
 
<div class="post">2nd</div> 
 
<div class="post">1st</div> 
 
<div class="post">2nd</div> 
 
</div>

0

利用:even選擇,.prependTo(),儘量.wrapAll()

$("<div />", {"id":"postsLeft", "html":$("#posts .post:even")}) 
 
.prependTo("#posts").siblings(".post").wrapAll("<div id=postsRight />");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script> 
 
<div id="posts"> 
 
<div class="post">1st</div> 
 
<div class="post">2nd</div> 
 
<div class="post">1st</div> 
 
<div class="post">2nd</div> 
 
<div class="post">1st</div> 
 
<div class="post">2nd</div> 
 
</div>

+0

這項工作,但不是爲這個腳本:[鏈接](http://jsfiddle.net/tq6a202n/1/) – fr33jumper

+0

@ fr33jumper _「這工程,但不是這個腳本「_,_」腳本必須使用此腳本http://jsfiddle.net/tq6a202n/1/"_原始問題不包括在內?另請參閱http://stackoverflow.com/questions/31218206/put-every-1st-and-every-2nd-div-in-different-div/31218380?noredirect=1#comment50437468_31218206 _「計數所有div類的職位div的帖子和什麼時候是奇數把post發佈到postsLeft,甚至是什麼時候發佈到postsRight「_' html」不包括,jQuery不會在http://jsfiddle.net/tq6a202n/1/加載; 'php'不在jsfiddle中運行 – guest271314