2015-06-04 85 views
-1

我有以下代碼:如何使此代碼工作? (JavaScript)的

var dateClasses = $('.dateClass'); // array of all your dateClasses 
var contentClasses = $('.contentClass'); // array of all your contentClasses 

for(var i=0; i< Math.min(dateClasses.length,contentClasses.length); i++) { 
var frame = $("<div>", {class: "frame"}); // create your frame node 
var timeLineDate = $("<span>",{class: "timeline-date"}); 
var timeLineContent = $("<div>",{class: "timeline-content"}); 

//Append DateClass to your timeline-data: 
timeLineData.append(dateClasses[i]); 

    //Append ContentClass to your timeline-content: 
timeLineContent.append(contentClasses[i]); 

//Append all to your frame 
frame.append(timeLineData); 
frame.append(timeLineContent); 
} 

和:

<span class="dateClass">date1</span> 
<span class="dateClass">date2</span> 
<span class="dateClass">date3</span> 
<div class="contentClass">content1</div> 
<div class="contentClass">content2</div> 
<div class="contentClass">content3</div> 

但我不知道爲什麼它是行不通的,任何意見? :/

http://jsfiddle.net/8qrLh2wz/

感謝您的時間

編輯: 我向大家道歉,我提交後太快我完全應得的downvotes。 我想要做的是(如您提到的其中一個)將dateClass元素移至timeline-datecontentClasstimeline-content。不過,我需要一個framedateClasscontentClass組元素:這意味着應該有 frame

+1

定義 「不工作」。它有什麼作用?你期望它做什麼?目前還不清楚你在問什麼。 –

+1

問題應總是描述預期的行爲(代碼應該做什麼)並描述你觀察代碼的行爲和/或你看到的錯誤。你不應該假設我們可以從你的代碼中找出你想要完成的事情。用文字描述。 – jfriend00

+1

使用小提琴頁面在瀏覽器中打開開發工具,然後單擊運行按鈕。你會看到的第一件事是'$'是未定義的。您可以使用「框架和擴展」下拉菜單修復該問題。然後再次點擊運行。下一個錯誤是'timeLineData'沒有被定義。解決這個問題,然後再試一次,並在找到它們時繼續修復錯誤。一旦你學會了如何使用你的開發工具,這將開始變得更容易。 –

回答

1

我認爲你正在試圖做的是對dateClass元素移至timeline-datecontentClasstimeline-content

但在你的代碼中創建新的元素,但不會被添加到DOM所以儘量

var dateClasses = $('.dateClass'); // array of all your dateClasses 
var contentClasses = $('.contentClass'); // array of all your contentClasses 

$('.frame .timeline-date').append(dateClasses); 
$('.frame .timeline-content').append(contentClasses); 

演示:Fiddle

如果你想保持你的循環

var dateClasses = $('.dateClass'); // array of all your dateClasses 
var contentClasses = $('.contentClass'); // array of all your contentClasses 

var timeLineData =$('.frame .timeline-date'); 
var timeLineContent =$('.frame .timeline-content'); 

for (var i = 0; i < Math.min(dateClasses.length, contentClasses.length); i++) { 
    //Append DateClass to your timeline-data: 
    timeLineData.append(dateClasses[i]); 

    //Append ContentClass to your timeline-content: 
    timeLineContent.append(contentClasses[i]); 
} 

演示:Fiddle

+0

謝謝@ArunPJohny,我剛剛更新了這個問題,我遇到了這個問題,我需要在'timeline-date'和'timeline-content'元素組中使用一個'frame' ,我怎麼能實現它? –

+0

@DanielFelipe http://jsfiddle.net/arunpjohny/j5sc5sy1/6/? –

+0

謝謝@ArunPJohny,它工作的很完美!,我遇到了一個問題,它是在'body'標記之後呈現的,它不會呈現在腳本的位置,所以我想知道是否將_creating_ divs,你認爲是否有可能將這些元素添加到已有的divs中? **或**,至少指定將在文檔中創建「frame」div的位置,即頁面中現有的div,例如「parent-frame」,例如 –

1

首先,你的問題它不清楚,它應該做什麼?

其次,你的代碼有一個錯字,你的var名稱是「timeLineDate」,但你要調用timeLineData兩次。

更新

<span class="dateClass">date1</span> 
<span class="dateClass">date2</span> 
<span class="dateClass">date3</span> 
<div class="contentClass">content1</div> 
<div class="contentClass">content2</div> 
<div class="contentClass">content3</div> 

var dateClasses = $('.dateClass'); // array of all your dateClasses 
var contentClasses = $('.contentClass'); // array of all your contentClasses 
var countElements = Math.min(dateClasses.length, contentClasses.length); 

for(var i = 0; i < countElements; i++) { 
    var frame = $("<div>", {class: "frame"}); // create your frame node 
    var timeLineDate = $("<div>",{class: "timeline-date"}); 
    var timeLineContent = $("<div>",{class: "timeline-content"}); 

    //Append DateClass to your timeline-data: 
    timeLineDate.append(dateClasses[i]); 

     //Append ContentClass to your timeline-content: 
    timeLineContent.append(contentClasses[i]); 

    //Append all to your frame 
    frame.append(timeLineDate); 
    frame.append(timeLineContent); 
    $("body").append(frame); 
} 

http://jsfiddle.net/j8229w4v/2/

+0

我很抱歉,我發表的帖子太快,我很抱歉。我想要做的確實是將dateClass元素移至時間軸日期,將contentClass移至時間軸內容。不過,我需要一個'frame'每dateClass和內容類元素:這意味着應該有總 –

+0

結構上3'frame',你想是這樣的:

date1
content1
date2
content2
... –

+0

是的,確實如此。 –