创建多个唯一的数组jQuery

Create multiple unique Arrays jQuery

本文关键字:数组 jQuery 唯一 创建      更新时间:2023-09-26

所以我有一个循环,它创建了9个唯一的按钮,具有唯一的id号和唯一的标题。这些按钮打开了一个模式窗口与复选框,我一直保存复选框数据到1数组。刚刚意识到我的错误,我需要知道如何循环并创建9个唯一命名的数组。

当前代码:

$('.roleBtn').click(function () {
    roleName = $(this).html();        /* Get role name */
    role_ID = $(this).attr('id');     /* Get role id */
    row_Name = ('row-'+role_ID );     /* Create Row Name */
    blueBtn = ('blue-btn-'+role_ID)   /* Create Blue Button */
    var str = $(this).attr('id');       
    substr = str.split ('role-');
    the_Num = substr[1];              /* Get the role ID and split to save number in the_Num */
    modal_ID = ('modal-'+the_Num);    /* Now get the associated modal number */
    genreAry = [];                    /* My Array, I need to make 9 of these */

基本上,我有一个XSL for-each循环,它创建了9个按钮,并向id添加了role-(+number)。然后我就可以通过jQuery获取按钮的内容和#id了。

<xsl:for-each select="$TalentUser/item">
    <li class="roleBtn" id="role-{position()}">
        <xsl:value-of select="sc:fld('title',.)" />
    </li>
</xsl:for-each>

我找不到如何正确命名每个新数组,你如何获得/创建以下内容:

genreAry1 = [];
genreAry2 = [];
genreAry3 = [];

更新工作代码感谢@Don McCurdy


我的XSL放一个javascript函数来获取创建的按钮的数量(在我的例子中是9)

<div id="talent-gender">
    <ul>
        <!-- For Each to get Talent Roles -->
        <xsl:for-each select="$TalentUser/item">
            <li class="roleBtn" id="role-{position()}">
                <xsl:value-of select="sc:fld('title',.)" />
            </li>
         </xsl:for-each>
         <script type="text/javascript">createRoleGenreArrays();</script>
    </ul>
</div>

jQuery全球var

var array_of_arrays = [];
var object_with_arrays = {};
var num_role_leon = 0;

捕获最终循环数(9)的createRoleGenreArrays函数

function createRoleGenreArrays () {
    for (i = 0; i < numRoleAry_leon.length; i++) {
        array_of_arrays.push([]);
        object_with_arrays['genreAry'+i] = []; /* creates 9 arrays named genreAry1, genreAray2 ... */
        console.log(i);
    }
}

最后使用不同的数组

$('.doneButton').click(function () {
    role_ID = role_id_saved_leon;
    var ary_Num = the_Num - 1; // <-- need to do this
$('.simplemodal-data input:checked').each(function (i) {
        alert($(this).attr('value'));
        object_with_arrays['genreAry'+ary_Num].push($(this).attr('value'));
        //alert($(this).attr('value'));
    });

您是否在询问如何创建任意数量的数组而无需手动为每个数组创建变量名称?如果是这样,我会考虑给它们一个封装对象或数组,以使事情变得更容易。

var 
   i,
   n = 9,
   array_of_arrays = [],
   object_with_arrays = {};
for (i = 0; i < n; i++) {
   array_of_arrays.push([]);
   object_with_arrays['genreAry'+i] = [];
]

上面的代码将提供两种不同的方法:

[ [], [], [], ... ]
{ genreAry1: [], genreAry2: [], ... }

如果您需要一系列(数字索引)数组,那么您应该使用…

二维数组!