首页 > 解决方案 > 我可以映射一个数组并将变量转换为几个不同的值吗?

问题描述

我需要使变量 i 等于 1,2,3,4。因为这随后用作需要隐藏/显示的 div 名称的一部分。

有没有可以轻松实现的?我一直在尝试循环、映射数组等。任何帮助将不胜感激。

function listenForIconModalChange() {
  // var modalNumbers = [1, 2, 3, 4];
  // for (i = 0; i <= modalNumbers.length; i ++);

  $('div[data-index^="icons_icon_"' + i + '"_modal_img"]').hide();
  $('div[data-index^="icons_icon_"' + i + '"modal_img_adobe"]').hide();
  $('div[data-index^="icons_icon_"' + i + '"_modal_imga"]').hide();
  $('div[data-index^="icons_icon_"' + i + '"_modal_copy"]').hide();
  $('div[data-index="icons_icon_"' + i + '"_modal"]').show();

  enableIconModalDropdown = $('select[name="icons_icon_' + i + '"modal"]');

  var enableIconModal = enableIconModalDropdown.val();
  if (enableIconModal == 1) {
    $('div[data-index^="icons_icon_"' + i + '"_modal_img"]').show();
    $('div[data-index^="icons_icon_"' + i + '"modal_img_adobe"]').show();
    $('div[data-index^="icons_icon_"' + i + '"_modal_imga"]').show();
    $('div[data-index^="icons_icon_"' + i + '"_modal_copy"]').show();
  }

  enableIconModal1Dropdown.change(function() {
    $('div[data-index^="icons_icon_"' + i + ']').hide();
    $('div[data-index="icons_icon_"' + i + ']').show();

    var enableIconModal = enableIconModal1Dropdown.val();
    if (enableIconModal == 1) {
      $('div[data-index="icons_icon_"' + i + ']').show();
    }
  });
}

标签: javascriptjquery

解决方案


您可以使用 ES6 模板字符串,如下所示:

$(`div[data-index^="icons_icon_${i}_modal_img"]`);

或者,如果您想保留语法,则必须删除一些引号:

$('div[data-index^="icons_icon_' + i + '_modal_img"]');

推荐阅读