我有一个生成id的复选框集合,其中一些有一个额外的属性。是否有可能使用JQuery来检查一个元素是否具有特定的属性? 例如,我能否验证以下元素是否具有属性“myattr”?属性的值可以变化。

<input type="checkbox" id="A" myattr="val_attr">A</input>

例如,我如何才能获得具有此属性的所有复选框的集合而不逐个检查?这可能吗?


当前回答

在这篇文章中,使用.is和属性选择器[],你可以很容易地添加一个函数(或原型):

function hasAttr($sel,attr) {
    return $sel.is('['+attr+']');
}

其他回答

在这篇文章中,使用.is和属性选择器[],你可以很容易地添加一个函数(或原型):

function hasAttr($sel,attr) {
    return $sel.is('['+attr+']');
}
if ($('#A').attr('myattr')) {
    // attribute exists
} else {
    // attribute does not exist
}

编辑:

当myattr存在但为空字符串或“0”时,上述内容将归入else分支。如果这是一个问题,你应该显式地测试undefined:

if ($('#A').attr('myattr') !== undefined) {
    // attribute exists
} else {
    // attribute does not exist
}

简单:

$("input[name*='value']")

更多信息:官方文档

$("input#A").attr("myattr") == null

你的意思是你可以选择他们吗?如果是,那么是的:

$(":checkbox[myattr]")