Wrapall与数字一起使用,但不适用于变量

时间:2014-04-02 12:27:03

标签: javascript jquery css html

考虑以下代码:

<script>
var n = 5; // NOTICE THIS LINE!!
$(function() {
var $newDiv = $("#content > .post:gt(5)").wrapAll($("<div>").addClass("hidden"));
$("<div>", { class: "onclick" }).insertBefore($newDiv.parent()).html("Load More");
$(".onclick").click(function() {
n = n+n+5; // NOTICE THIS LINE !!
$(this).remove();
$(".hidden .post").unwrap();
$newDiv = $("#content > .post:gt(n)").wrapAll($("<div>").addClass("hidden")); // NOTICE!!
$("<div>", { class: "onclick" }).insertBefore($newDiv.parent()).html("Load More");
});
});
</script>

我的HTML:

<div id="content">
<div class="post"></div>
<div class="post"></div>
<div class="post"></div>

<div class="post"></div>
<div class="post"></div>
<div class="post"></div>
</div>
<div class="onclick">CLICK ME!</div>

这完美 IF 我删除了&#34; n&#34;来自&#34; wrapAll&#34;并输入6或10之类的数字。为什么?

请帮忙!

2 个答案:

答案 0 :(得分:2)

这是因为代码

$newDiv = $("#content > .post:gt(n)").wrapAll($("<div>").addClass("hidden"));
假设

只是一个字符串“.post:gt(n)”。它不知道它是一个数字。 将此行更改为:

$newDiv = $("#content > .post:gt(" + n + ")").wrapAll($("<div>").addClass("hidden"));

答案 1 :(得分:0)

您需要在字符串中连接变量:

$("#content > .post:gt(" + n + ")")