.index()问题

时间:2010-12-06 13:43:02

标签: javascript jquery

你看我在比较他们的索引时试图操纵一些元素。 问题是我的索引没有赋值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);
});

我也对我的语法和算法有任何评论!

有什么建议吗? 谢谢大家

3 个答案:

答案 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);
});