2012-03-09 77 views
0

我遇到了一些Jquery追加功能的麻煩。我希望有一個周圍PHP while循環DIV,所以我做了這個代碼和開放div標籤被調用,但收盤div標籤不與它的開放標籤註冊:奇怪的JQuery追加不完成DIV

$('.class').append('<div class=\"class_name\">'); 
\\ While Loop 
$('.class').append('</div>'); 
+0

剛剛產生你的PHP,然後讓jQuery的包裝在一個DIV。首先處理PHP,然後將其發送到瀏覽器,jQuery可以在生成的結果上工作。 – j08691 2012-03-09 21:33:08

回答

5

的jQuery只追加完整的元素,如果沒有jQuery自動關閉它,你不能追加開頭的div標籤。嘗試構建一個html字符串,然後附加該字符串。

var strOutput = "<div class='class_name'>"; 

// replace this with php loop: for (var i = 1; i < 10; i++) { 
    strOutput += i; 
// replace this with php loop: } 
strOutput += "</div>"; 
$(".class").append(strOutput); 

UPDATE
假設你做了一個PHP while循環,並生成一個名爲$ strOutput變量:

$strOutput = "<div class='class_name'>some text here</div>"; 

它添加到您的JavaScript這樣的:

echo "$('.class').append('$strOutput');"; 

另一個更新

行間閱讀!這只是一個例子...建立一個單一的字符串,然後回顯它。

$strOutput = "<div class='class_name'>"; 
// within your while loop... 
$strOutput = $strOutput."somevalue"; 
// now after your while loop... 
$strOutput = $strOutput."</div>"; 
echo "$('.class').append('$strOutput');"; 
+0

我的PHP while循環如何適合這個? – drummer392 2012-03-09 21:33:57

+0

基本上,使用你的PHP來創建一個長的字符串,然後作爲一個單獨的div一次追加整個長字符串。我不做很多的PHP,所以我不會發佈一個PHP while while循環。如果你發佈你的原始循環,我不介意修改它在我的代碼中工作。 – 2012-03-09 21:35:03

+0

啊,我明白你在說什麼了。我對JS不是很熟悉,但是我的字符串或long變量在你的代碼裏面呢?只需添加'strOutput + = varName'? – drummer392 2012-03-09 21:38:11

2

爲什麼不把while循環的輸出放在變量中,然後將它附加到div中。

更新

var output = //the output from the while loop 

$('.class').append('<div class=\"class_name\"></div>').append(output);

var div = $('<div class=\"class_name\"></div>').append(output);  
$('.class').append(div); 
+0

雖然這個概念可行,但它會將輸出附加到'.class',而不是生成的'.class_name' div。 – 2012-03-09 21:42:55

0

你可以保存代碼在while循環到varable,然後在jQuery的追加通話迴音出來。

正如凱文上面B說,jQuery的追加唯一完整的元素,所以做這樣的事情:

<?php 
//while loop (save whatever you'd echo/output to a var 
?> 

$('.class').append('<div class="class_name"><?=$output_from_while_loop?></div>');