我有这个each()
,它收集带有参数data-is-rate = 1
的所有选中复选框
$('input[data-is-rate="1"]:checked').each(function(){
console.log($(this).attr('data-id'));
});
由此,我得到了每个data-id
111
222
333
那么有什么方法可以比较它们吗? ID 不是唯一的并且可以相同,我需要检查。
因此,如果 data-id
重复出现,它应该返回错误。
例如,如果输出是这样的,它应该返回一个错误。
111
222
111
如果输出是这样的,应该不会有错误,因为值是唯一的
111
222
333
我如何比较这些?
最佳答案
这样的事情可能会有所帮助,当错误发生时,做需要做的事情......
var ids = [];
$('input[data-is-rate="1"]:checked').each(function(){
console.log($(this).attr('data-id'));
if(ids.includes($(this).attr('data-id'))) {
console.log(' E R R O R !');
}
ids.push($(this).attr('data-id'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input data-is-rate="1" type="checkbox" data-id="111" checked="checked">111
<input data-is-rate="1" type="checkbox" data-id="111" checked="checked">111
<input data-is-rate="1" type="checkbox" data-id="222" checked="checked">222
<input data-is-rate="1" type="checkbox" data-id="333" checked="checked">333
如果 data-id="111"
没有检查两次,则没有错误
var ids = [];
$('input[data-is-rate="1"]:checked').each(function(){
console.log($(this).attr('data-id'));
if(ids.includes($(this).attr('data-id'))) {
console.log(' E R R O R !');
}
ids.push($(this).attr('data-id'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input data-is-rate="1" type="checkbox" data-id="111" checked="checked">111
<input data-is-rate="1" type="checkbox" data-id="111" >111
<input data-is-rate="1" type="checkbox" data-id="222" checked="checked">222
<input data-is-rate="1" type="checkbox" data-id="333" checked="checked">333
关于javascript - 比较每个 JS 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60365412/