如何检查属性值
How to check for attribute value
请告知我是否在这里使用了正确的语法来检查"aria-expanded"是否适用于css class"classname"的特定元素集:
if ($(‘.classname’).hasAttribute('aria-expanded','true')) {
output here
}
hasAttribute
方法,所以我假设$ = docuument.querySelector
。(注意:不是document.querySelectorAll
;所以,您只考虑一个元素)。
hasAttribute
方法采用一个参数:您要检查的属性的名称。要检查该属性的值,需要使用getAttribute
,然后进行比较。所以你可以这样做:
if( $('.classname').getAttribute('aria-expanded') === 'true') {}
如果您使用的是jQuery,那么您可以使用attr
方法:
if ($('.classname').attr('aria-expanded') === 'true') {}
另请参阅hasAttribute
的MDN文档。
如果你试图检查一组元素,你可以这样做:
function allHaveAttribute(elements, attrName, attrValue) {
// First, check that all elements have the attribute
for (var i = 0; i < elements.length; i++) {
if (!elements[i].hasAttribute(attrName)) return false;
}
if (attrValue) { // if we're checking their value...
for (var i = 0; i < elements.length; i++) {
if (elements[i].getAttribute(attrName) !== attrValue)
return false;
}
return true;
} else { // we know all elements have the attribute
return true;
}
}
var els = document.querySelectorAll('.classname');
if (allHaveAttribute(els, 'aria-expanded', 'true') {
// action here
}
JSBin示例:http://jsbin.com/payaqijeqa/edit?js,控制台
jQuery没有
.hasAttribute
功能如果真的这样做了,它很可能只对第一个有效
下面使用本机JavaScript(ES5)检查集合document.querySelectorAll('.classname')
中的.every
元素是否将该属性设置为true
。
let allSet = [].every.call(document.querySelectorAll('.classname'), function(el) {
return el.getAttribute('aria-expanded') === 'true';
});
注意:以上测试区分大小写。它还会忽略任何根本没有该属性的元素。如果后者是一个问题:
let allSet = [].every.call(document.querySelectorAll('.classname'), function(el) {
return el.hasAttribute('aria-expanded') && el.getAttribute('aria-expanded') === 'true';
});
您可以检查类为"className"的每个元素是否都具有属性"aria-expanded='true'",带有:
if( $(".className").length === $(".className").filter("[aria-expanded='true']").length) {
//output here
}
CSS具有属性选择器,允许选择具有特定属性的元素。如果您否定选择器(它是jQuery唯一的),您可以使用测试是否有任何元素具有类但没有属性值
$(".className[aria-expanded!='true']").length == 0
相关文章:
- C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
- 如何检查名为id的变量属性
- 继承的属性检查
- 如何检查属性值
- 检查对象的所有属性是否未定义
- 检查来自不同数组的两个元素的一个属性是否相等
- 正在检查对象javascript中是否存在嵌套属性
- vue-js-单选按钮won't默认情况下使用v-model属性进行检查
- 正在检查属性的属性是否存在
- jQuery检查CSS宽度是否大于0,然后添加CSS属性
- 至于所有输入的标签都用指定的属性来设置,例如属性检查=false
- hasOwnProperty 在对照父对象属性进行检查时返回 true
- 检查所有元素的属性并修改另一个元素
- 使用 Chai - 如何检查对象属性是否包含 DOM 元素
- 柴:如何检查异常属性
- 如何从浏览器隐藏视频src属性's检查元素
- Symfony Twig+Haml标记属性检查和属性脚本
- 使& # 39;dom-if& # 39;根据另一个元素中的属性检查条件
- 根据属性检查现有对象的firebase,防止重复
- 事件属性检查器