首页 > 解决方案 > 使用 .getAttribute 获取(仅)输入字段的 ID

问题描述

我有一个复选框列表,它们都有唯一的 ID。当按下按钮时,它应该将此 ID 列表传递到后端。我可以使用 .getAttribute 方法获取 ID,但它包含我不需要的其他信息。有没有办法只获取所选复选框的 id?

这是单击按钮时触发的基本代码:

            $('input[name = "dCodes"]:checked').each(function () {
                selectedCodes.push($(this.getAttribute('id')));
            });

这是单击按钮后 selectedCodes 数组包含的内容: 在此处输入图像描述

标签: jqueryattributes

解决方案


如果您想要id字符串,则不要将 jQuery 对象推送到数组中:

let selectedCodes = [];
$('input[name="dCodes"]:checked').each(function () {
  selectedCodes.push(this.getAttribute('id'));
});

请注意,这可以简化为id直接从this引用中检索属性而无需getAttribute()

let selectedCodes = [];
$('input[name="dCodes"]:checked').each(function () {
  selectedCodes.push(this.id);
});

更进一步,您可以each()通过使用 jQuery 的方法消除对显式循环和单独数组声明的需要map()

let selectedCodes = $('input[name="dCodes"]:checked').map(function () {
  return this.id;
}).get();

推荐阅读