奇怪的JQuery附加不完整的DIV

时间:2012-03-09 21:24:28

标签: php jquery html

我在使用Jquery附加功能时遇到了一些麻烦。我想在PHP while循环中有一个DIV,所以我做了这个代码并调用了开始的div标签,但是结束div标签没有注册其开头标记:

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

3 个答案:

答案 0 :(得分: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);

<强>更新
假设你做了一个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');";

答案 1 :(得分: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);

答案 2 :(得分:0)

您可以将while循环中的代码保存到varable中,然后在jquery追加调用中将其回显。

正如Kevin 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>');