gpt4 book ai didi

jquery - 如何使用 jQuery 选择第一次出现的每个具有特定属性唯一值的复选框?

转载 作者:行者123 更新时间:2023-12-01 06:16:01 25 4
gpt4 key购买 nike

我确信这个问题很难理解,所以我会告诉你我正在尝试做什么:

假设我有以下复选框 HTML:

<input type="checkbox" id="selectAll" /> Select All
<input type="checkbox" name="addressId" value="100" uid="1" /> Address 100
<input type="checkbox" name="addressId" value="101" uid="2" /> Address 101
<input type="checkbox" name="addressId" value="102" uid="3" /> Address 102
<input type="checkbox" name="addressId" value="103" uid="4" /> Address 103
<input type="checkbox" name="addressId" value="104" uid="2" /> Address 104
<input type="checkbox" name="addressId" value="105" uid="4" /> Address 105
<input type="checkbox" name="addressId" value="106" uid="5" /> Address 106

我当前正在使用以下全选 jQuery 逻辑:

$("#selectAll").change(function() {
if ($(this).is(":checked"))
$("input[name='addressId']").attr("checked", "").removeAttr("checked").attr("checked", "checked");
else
$("input[name='addressId']").attr("checked", "").removeAttr("checked");
});

基本上,我需要更新此逻辑,以便只有每组复选框中的 FIRST 复选框具有匹配的 uid 值(例如,选择地址 101 和 104 具有匹配的 uid 值 -2)。因此,在上面的示例中,仅选择地址 ID 100、101、102、103 和 AND 106,而 104 和 105 将保持未选择状态。我怎样才能在 jQuery 中做到这一点?我似乎无法弄清楚选择器!

谢谢。

最佳答案

我不确定这是否是获取复选框的最佳方式,但它有效:

var uids = [],
unique = $('input[name=addressId]').filter(function(index) {
var uid = $(this).attr('uid');
if ($.inArray(uid, uids) == -1) {
uids.push(uid);
return true;
} else {
return false;
}
});

那么,您可以将 #selectAll 上的事件处理程序简化为:

$('#selectAll').change(function() {
unique.attr('checked', this.checked);
});

工作示例:http://jsfiddle.net/FishBasketGordo/crkA7/

关于jquery - 如何使用 jQuery 选择第一次出现的每个具有特定属性唯一值的复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7124097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com