簡體   English   中英

jQuery插件-for循環設置

[英]jQuery plugin - for loop for settings

我正在制作一個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”?

聽起來您需要一個數組。

$('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'
    }  
  ]
});

這行不行嗎?

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遍歷數組。

找到了我自己的問題的解決方案:

for (var i=1;i<20;i++) {
      var cName = 'cName' + i;
      if (settings[cName]) { cNameArray.push(cName); }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM