将变量分配给列表分页

时间:2014-12-11 14:14:34

标签: jquery list variables

我正在使用一个插件,它会在我的html文档中创建一个部分列表的导航。

我想为每个导航点插入一个自定义名称,同时它的当前"导航1","导航2","导航3"。最后它应该像" Dogs"," Cats"," Squirrels&#34 ;.

目前的代码是:

if(settings.pagination == true) {
    paginationList += "<li><a data-index='"+(i+1)+"' href='#" + (i+1) + "'><span class='icon'><img src='img/icons/icon"+(i+1)+".png' width='20' height='20' alt='icon"+(i+1)+"'></span><span class='link'>Navigation "+(i+1)+"</span></a></li>"
  }

我想到了一个解决方法,因为菜单已经有了&#34; +(i + 1)+&#34;标签使用。所以我考虑创建一个变量列表

var navi1 = dogs
var navi2 = cats
var navi3 = squirrels

并使用这些变量(因为它们已经从1开始编号,如

take variable "navi(i+1)"

我怎么能这样做,因为我不是一个太熟练的jquery开发者呢?

祝你好运, 玛丽安。

1 个答案:

答案 0 :(得分:1)

如果您的变量是在全球范围内定义的,则可以通过windowthis访问它们 也是这样:

window.nav1this.nav1

这将允许您使用括号表示法来访问这些属性,如下所示:

window['nav1']this['nav1']

...因此您可以使用此表示法为属性名称应用动态名称:

window['nav' + i]this['nav' + i]

<强>更新

您可以使用导航array,然后迭代其项目并创建列表项。这是一个例子:

var nav = [ 'dogs', 'cats', 'squirrels' ],
    paginationList = '';

for (var i = 0, i < nav.length; i < l; i++) {
    paginationList += '<li>';
    paginationList += '<a data-index="' + (i+1) + '" href="#' + (i+1) + '">';
    paginationList += '<span class="icon">';
    paginationList += '<img src="img/icons/icon' + (i+1) + '.png" width="20" height="20" alt="icon' + (i+1) + '">';
    paginationList += '</span>';
    paginationList += '<span class="link">' + nav[i] + '</span>';
    paginationList += '</a>';
    paginationList += '</li>';
}

在这个片段中,我创建了一个nav数组,并使用for循环迭代其项目。循环变量i内部会更改每次迭代的值。因此,在第一次迭代中,i等于0,在下一个1中等等,直到此条件变为false i < nav.length,其中nav.lengthnav数组中的项目数。

您可以使用索引获取数组项的值,如下所示:nav[1],这是数组的第二个元素,因为索引从0开始。因此,在循环内部,您可以使用i作为索引来访问项目,如下所示:nav[i]

此外,我已经分解了单行代码,使其更具可读性。

如果有任何不清楚的地方,请问我。