Javascript 检查元素是否不存在';没有属性jQuery

Javascript 检查元素是否不存在';没有属性jQuery,javascript,jquery,Javascript,Jquery,onClick一个项目,它会添加一个属性。只能选择三个项目,因此它们只能是页面上具有以下属性的三个元素:选择的数据:1,选择的数据:2或选择的数据:3 if ($('.item').attr('data-selected', '1') || $('.item').attr('data-selected', '1') || $('.item').attr('data-selected', '1')) { } 我可以使用if语句检查元素是否具有属性,如何检查具有.item类的所有元素是否

onClick
一个项目,它会添加一个属性。只能选择三个项目,因此它们只能是页面上具有以下属性的三个元素:
选择的数据:1
选择的数据:2
选择的数据:3

if ($('.item').attr('data-selected', '1') || $('.item').attr('data-selected', '1') || 
    $('.item').attr('data-selected', '1')) {
}
我可以使用if语句检查元素是否具有
属性,如何检查具有
.item
类的所有元素是否具有属性,如果没有,则执行操作。

在处理数据属性时,使用方法而不是
attr()
,现在您必须了解数据属性设置器和获取器之间的区别

塞特:

$('.item').data('selected', '1'); // assign to the data attribute selected the value 1
吸气剂:

$('.item').data('selected'); //get the value 1 from data attribute selected
尝试将所选数据属性
的值存储在变量中,然后检查:

var selected = $('.item').data('selected');

if (selected == 1 || selected ==2 || selected == 3) {
    //Code here
}
如何检查具有.item类的所有元素是否都有属性,如果没有,则执行某些操作

您可以使用Jquery not selector来选择与给定选择器不匹配的所有元素:

if($('.item:not([data-selected])').length)
    //Not all items has attribute data-selected
else
    //All items has attribute data-selected
希望这有帮助

如何检查具有.item类的所有元素是否都有属性,如果没有,则执行某些操作


只需检查所选元素是否具有所需属性。您可以
.filter
或使用
.not
功能

**更新** 根据我对这个问题的理解,您希望将选择限制为仅三项。这里有一个建议:

$(函数(){
$('.item')。在('click',函数(){
var checked=$(this.prop('checked');//当前已选中?
所选变量=$(“.item”).filter(“[data selected]”);
如果(选中){
$(this.attr('data-selected',-1).parent().addClass('selected');
选中=选中。添加(此);
}否则{
$(this).removeAttr('data-selected').parent().removeClass('selected');
已选择=已选择。未选择(此);
}
已选择。排序(功能(a、b){
返回$(a).attr('data-selected')-$(b).attr('data-selected');
}).每个(功能(索引){
如果(索引>=3){
$(this).prop('checked',false).removeAttr('data-selected').parent().removeClass('selected');
}否则{
$(this).attr('data-selected',index+1);
}
});
});
});
。所选{color:red;}

项目1
项目2
项目3
项目4
项目5

第6项
如果直接在HTML中设置属性,则此项不起作用;只有在使用
.data
设置数据时,它才会工作。不,这不是真的,也应该与HTML中直接设置的数据属性一起工作。
.data()
读取
数据-*
属性,但不分配给它们。等等,是的,我在想
:data()
选择器(来自jQuery UI)my bad:)@ZakariaAcharki
.data()
可以存储数据,但不能存储在
数据-*
属性中。是否要检查属性的值?属性是否存在?
var items = $('.item');
var itemsWithoutAttribute = items.filter(':not([data-selected]');
if(itemsWithoutAttribute.length > 0) {
    ...
}