你看我在比较他们的索引时试图操纵一些元素。 问题是我的索引没有赋值int值但是未定义。
$(function(){
var i;
$("a").click
(
function()
{
i = $("a").index(this);
$(".textholder div:eq(i)").slideUp();
$(".textholder div:eq(i+1)").css('top', '-210px');
return false;
}
);
alert(i);
});
我也对我的语法和算法有任何评论!
有什么建议吗? 谢谢大家
答案 0 :(得分:5)
我不确定这是你唯一的问题,但是:
$(".textholder div:eq(i)").slideUp();
$(".textholder div:eq(i+1)").css('top', '-210px');
应该是:
$(".textholder div:eq(" + i + ")").slideUp();
$(".textholder div:eq(" + i+1 + ")").css('top', '-210px');
否则将不会评估i
。
答案 1 :(得分:4)
在点击任何内容之前,您会提醒i
。单击某些内容时,执行的唯一位是从行function()
到行return false;
所以毫无疑问i
未定义。
如果您希望在i
设置时看到alert(i)
的值,请将console.log()
行(或更好,将其更改为i = $("a").index(this);
)移至{{1}}以下行。
答案 2 :(得分:2)
i
变量不会在字符串中进行插值,将其带到外面。
$(function(){
var i;
$("a").click
(
function()
{
i = $("a").index(this);
$(".textholder div:eq(" + i + ")").slideUp();
$(".textholder div:eq(" + (i+1) + ")").css('top', '-210px');
return false;
}
);
alert(i);
});