我正在使用一个插件,它会在我的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开发者呢?
祝你好运, 玛丽安。
答案 0 :(得分:1)
如果您的变量是在全球范围内定义的,则可以通过window
或this
访问它们
也是这样:
window.nav1
或this.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.length
为nav
数组中的项目数。
您可以使用索引获取数组项的值,如下所示:nav[1]
,这是数组的第二个元素,因为索引从0
开始。因此,在循环内部,您可以使用i
作为索引来访问项目,如下所示:nav[i]
。
此外,我已经分解了单行代码,使其更具可读性。
如果有任何不清楚的地方,请问我。