我正在创建一个jQuery插件,其中的设置名称相同但编号不同。因此,在我的HTML文件中调用的脚本如下所示:
<script>
$(document).ready(function(){
$('body').myPlugin({
cName1 : 'First name here',
cName2 : 'Second name in here',
cName3 : 'Third name here',
});
});
</script>
可能会有无限量的设置,例如cName18
所以在实际的插件中我想用for循环遍历所有实例,但是使用'i'作为字符串的一部分而不是调用数组的一部分。像这样:
for (var i=1;i<20;i++) {
var cName = settings.cName + i;
if (cName) { cNameArray.push(cName); }
}
这显然不起作用。有没有人知道如何在这样的for循环中使用'i'?
答案 0 :(得分:2)
听起来你需要一个阵列。
$('body').myPlugin({
cNames: [
'First name here',
'Second name in here',
'Third name here'
]
});
以及基于评论的快速更新,因为您还需要描述:
$('body').myPlugin({
cNames: [
{
name: 'First name here',
description: 'First!'
},
{
name: 'Second name in here',
description: 'I am the second one!'
},
{
name: 'Third name here',
description: 'BRONZE BABY'
}
]
});
答案 1 :(得分:1)
这不会起作用吗?
for (var i=1;i<20;i++) {
var cName = settings['cName' + i];
if (cName != undefined && cName != null) { cNameArray.push(cName); }
}
然而,更好的想法是让插件接受“cNames”的数组,如下所示:
$(document).ready(function(){
$('body').myPlugin({
names : ['First name here', 'Second name in here', 'Third name here']
});
});
然后,在插件中,您可以使用简单的$ .each循环遍历数组。
答案 2 :(得分:0)
找到了我自己的问题的解决方案:
for (var i=1;i<20;i++) {
var cName = 'cName' + i;
if (settings[cName]) { cNameArray.push(cName); }
}