2013-01-09 210 views
1

我有一个jQuery脚本,它为每个div提供了自己的data-page-index属性作为数字,我有一些变量可以提取特定的数据页面索引值并将它们转换为整数以进行一些计算,但我需要重新应用此号码使用其var名称,例如,将var设置为属性值

var foo = parseInt(active.attr('data-page-index')), 
    next = (foo+1) 
    nextfoo = $('[data-page-index="'' +next+ '"]') 

这是可能的吗?

回答

1

是的,这是可能的。你的问题是一个小的语法错误。你在那里有额外的单引号。

nextfoo = $('[data-page-index="'' +next+ '"]') 
/* -----------------------------^---------- */ 

由于语法突出显示存在问题,因此可以在Stack Overflow中看到此处。你的IDE应该也有同样的效果。

正确的代码应该是这个样子(我真的不喜欢在一行中定义多个变量,所以我他们分手了 -

var foo = parseInt(active.attr('data-page-index')); 
var next = foo+1; 
var nextfoo = $('[data-page-index="' + next + '"]'); 

我可能是错的...但我。认为next是一个保留关键字,这可能给你造成一些不可预知的问题......我建议改变这个变量以及名称...Irrelevant

+2

难道他需要一个逗号后下一=(FOO + 1)呢? –

+0

@mat - 你是对的......但我不是那种语法的忠实粉丝,所以我改变了它。 – Lix

+0

同意。我讨厌人们试图让所有人都喜欢这些变种。 –

0

试试这个:

var foo = parseInt(active.data('page-index')), 
next = (foo + 1) 
nextfoo = $('[data-page-index="' + next + '"]') 

您在属性选择了一个错误的双''

1

绝对:

var foo = parseInt(active.attr('data-page-index')), 
next = (foo+1) // <---parse this one too 
nextfoo = $('[data-page-index="'' +next+ '"]') 
    //---------------------------^--------------you have extra (') here 

它应该是:

var foo = parseInt(active.attr('data-page-index')), 
next = parseInt(foo+1); 
nextfoo = $('[data-page-index="' +next+ '"]'); 
+0

+1用于实际指示哪里问题是。有时候,当你长时间盯着一段代码时,很容易错过这样的小错误。 – Lix

+0

@Lix好了说:) – Jai