繁体   English   中英

如何检测标签是否具有特定类别?

[英]How can I detect if a label has a specific class?

我有一个包含复选框的下拉菜单,可以一次检查多个复选框。 选中复选框后,其标签的类别将设置为“选中”,然后在取消选中时将其删除。

选中复选框之前:

<label><input type="checkbox" name="gainlosstypes[]" value="Losses" class="upperFilter">Losses</label>

选中复选框后:

<label class="checked"><input type="checkbox" name="gainlosstypes[]" value="Losses" class="upperFilte">Losses</label>

选中标签元素后, .toggleClass('checked')调用.toggleClass('checked')

我需要能够检测哪个标签的类设置为“选中”,以便可以基于这些字段过滤数据。

如果$(this)是label元素,则当我尝试$(this).hasClass('checked')它将引发错误。 那是我知道尝试的唯一方法。 还有其他方法可以判断特定标签元素是否具有特定类吗?

编辑:

尝试检查属性时出现这些错误。 当我使用hasClass时,也会发生这种情况:

> $(".multiSelectOptions :checkbox")[1].attr('checked')
TypeError: Object #<HTMLInputElement> has no method 'attr'
> $(".multiSelectOptions :checkbox").parent('label')[1].attr('checked')
TypeError: Object #<HTMLLabelElement> has no method 'attr'

检查的不是CSS类,而是html属性。 因此,您应该检查属性而不是类。

你应该试试 :

if($(this).attr('checked') != null)
{
    //do stuff here
}

编辑:

就像@Bojangles所说的, checked可以是一个自定义CSS类,但是使用属性而不是自定义css类来检查checked复选框可能更有意义。

编辑#2:

请跳过先前的答案并使用以下说明:

您可以在此使用JQuery选择器:

举个例子:

$('.checked')//this would get you all the element with the class 'checked'

//if you want to check if you have any check element:

if($('.checked').length > 0)
{
    //do stuff here
}

//To loop trought all the element that are 'checked'

$('.checked').each(
function(index)
{
    $(this).removeClass('checked');
    //do stuff here for exemple...
}
)

如果标签的属性设置为“ checked”,这将设置为checked,否则您将无法定义并且可以根据此逻辑。

var checked = $(this).attr('checked');

怎么样

if( $(this).attr('class') == "checked" ){
    ... do something
}

那将检查checked的类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM