2012-03-09 71 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>');