如何从多个具有相同名称的元素中获取单击的元素 数组的不同索引索引.

  • 本文关键字:索引 元素 单击 数组 获取 jquery
  • 更新时间 :
  • 英文 :


我有一个问题。我有名称相同但索引不同的选择选项列表。 当我点击其中一个时,我不知道如何检测元素。 例:

<select name='contract_sides[0][joint_venture]'>
</select>
<select name='contract_sides[0][company_id]'>
</select>
<select name='contract_sides[1][joint_venture]'>
</select>
<select name='contract_sides[1][company_id]'>
</select>
...........
<select name='contract_sides[n][joint_venture]'>
</select>
<select name='contract_sides[n][company_id]'>
</select>

当我更改其中之一的值时。我将在下面显示/隐藏<select name="contract_sides[index]company_id"></select>。 非常感谢您的帮助。对不起我的英语! P/s:如果我们使用类,问题会更简单,但问题是我们只能使用名称。

光的解决方案:

$('select[name*="joint_venture"]').on('change', function () {    
let name = $(this).attr('name');
let index = name.match(/[([0-9]*)]/)[1];
// Hide the company id
$(`select[name="contract_sides[${index}][company_id]"]`).hide();
});
$('select[name*="contract_sides"]').on('click', function () {
// Your clicked element is now $(this)    
let $this = $(this);
// Name of the clicked element
let name = $this.attr('name');
// Index of the clicked element
let index = name.match(/[([0-9]*)]/)[1];
});

在您的评论到另一个答案之后,我更了解您在寻找什么,我相信这应该按照您想要的方式运行

$('select[name*="joint_venture"]').on('change', function () {    
let name = $(this).attr('name');
let index = name.match(/[([0-9]*)]/)[1];
// Hide the company id
$(`select[name="contract_sides[${index}][company_id]"]`).hide();
});

相关内容

  • 没有找到相关文章

最新更新