jQuery on.change 数组的特定元素
Posted
技术标签:
【中文标题】jQuery on.change 数组的特定元素【英文标题】:jQuery on.change specific element of array 【发布时间】: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();
【问题讨论】:
【参考方案1】:this.id
是事件目标的 ID。可以得到它在数组中的索引。
$(document).on('change', regularityWeeksArrayToString, function()
var index = regularityWeeksArray.indexOf(this.id);
if($(this).val() === 'interim')
showInterimWithID(index);
else
hideInterimWithID(index);
);
【讨论】:
以上是关于jQuery on.change 数组的特定元素的主要内容,如果未能解决你的问题,请参考以下文章
任何人在 ios 12.2 上遇到 jquery.on('change') 或 .change() 的任何问题?
jQuery 1.8.1 - live, livequery, on + change 不工作
jQuery 收音机输入 .on('change') 触发了两次