javascript - 如何检查属性值

标签 javascript jquery

如果我在这里使用正确的语法来检查“aria-expanded”对于具有 css 类“classname”的特定元素集是否为真,请告诉我:

    if ($(‘.classname’).hasAttribute('aria-expanded','true')) {
 output here
}

最佳答案

jQuery 没有 hasAttribute 方法,因此我假设 $ = docuument.querySelector。 (注意:不是 document.querySelectorAll;因此,您只考虑单个元素)。

hasAttribute 方法采用单个参数:您要检查的属性的名称。要检查该属性的值,您需要使用 getAttribute 然后进行比较。所以你可能会这样做:

if( $('.classname').getAttribute('aria-expanded') === 'true') {}

如果您使用的是 jQuery,那么您可以只使用 attr 方法:

if ($('.classname').attr('aria-expanded') === 'true') {}

另请参阅MDN docs for hasAttribute .

如果您尝试检查一组元素,您可以执行以下操作:

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,console

关于javascript - 如何检查属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37125674/

相关文章:

javascript - 输入元素上的 knockout validation 错误类

javascript - AJAX - 尝试使用 debounce 实现实时搜索

javascript - 循环浏览图像直到悬停 jquery

jquery - 如何修复滚动条总是在div的底部?

javascript - 使用 document.currentScript 将数据附加到 div

javascript - JQuery 工具提示不允许单击按钮

Javascript 将unix日期转换为ddmmyy格式

javascript - Select2 在 ASP.Net UserControl 中不工作

javascript - 如何在functions.php(wordpress)中加载 Bootstrap 脚本和样式?

javascript - 当元素是父元素时,jQuery 停止单击时打开具有相同类的所有元素