【问题标题】:jQuery on.change specific element of arrayjQuery on.change 数组的特定元素
【发布时间】:2021-06-19 15:23:18
【问题描述】:

我目前正在努力解决我的具体问题。我正在使用 Symfony Collection 实体类型和 https://symfony-collection.fuz.org/symfony3/ 捆绑包进行前端渲染。当我单击以添加新集合时,将呈现新的输入集。当不满足条件时,我需要隐藏特定的输入。为此,我正在使用 jQuery。在开始时,我声明了一组可能的 HTML id。

var regularityWeeksArray = [
    '#user_working_hours_weeks_0_regularity', '#user_working_hours_weeks_1_regularity',
    '#user_working_hours_weeks_2_regularity', '#user_working_hours_weeks_3_regularity'
]

然后我加入它是为了满足 jQuery 的要求,因为我不知道如何解决这个问题。我很想使用此代码来运行它,但我需要获取正在更改数组的哪个特定元素以提供该元素的函数 ID。现在我正在更改第一个,因为我不知道如何满足我的要求。

var regularityWeeksArrayToString = regularityWeeksArray.join(', ');

$(document).on('change', regularityWeeksArrayToString, function() {
    if($(this).val() === 'interim'){
        showInterimWithID(0);
    } else {
        hideInterimWithID(0);
    }
});

您对如何做到这一点有任何想法吗?提前非常感谢,我现在真的脱发了几个小时。

//编辑:对于上下文,这就是 showsInterimWithID() 的样子,它显示特定的输入及其标签。

function showInterimWithID(id){
    $('#user_working_hours_weeks_'+ id +'_interim_from, label[for=user_working_hours_weeks_'+ id +'_interim_from]').show();
    $('#user_working_hours_weeks_'+ id +'_interim_to, label[for=user_working_hours_weeks_'+ id +'_interim_to]').show();
}

【问题讨论】:

    标签: javascript jquery symfony


    【解决方案1】:

    this.id 是事件目标的 ID。可以得到它在数组中的索引。

    $(document).on('change', regularityWeeksArrayToString, function() {
        var index = regularityWeeksArray.indexOf(this.id);
        if($(this).val() === 'interim'){
            showInterimWithID(index);
        } else {
            hideInterimWithID(index);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-13
      • 2018-03-17
      • 2021-06-21
      • 2019-04-18
      相关资源
      最近更新 更多