开发者问题收集

getAttribute 函数不起作用

2015-06-30
6928

我正在尝试将给定元素的自定义属性与具有特定类的所有其他元素的自定义属性进行比较...这是我所得到的

function choose(el){
    var text = $(el).getAttribute("data-custom");
    var list = document.getElementsByClassName("class");
    for (var i = 0; i < list.length ; i++) {
        if (list[i].getAttribute("data-custom") == text) {
            /*DO STUFF*/
        }
    }
}

html

<div onclick="choose(this)">STUFF</div>

目前我收到“$(...).getAttribute 不是函数”错误。

2个回答

jQuery 版本是 $().attr('data-custom') 。请注意,要访问 data-* 属性,您可以使用 $().data('custom')

或者您可以放弃 jQuery(您在下一行没有使用它)并使用

el.getAttribute('data-custom');
// If el is not a DOM element
$(el)[0].getAttribute('data-custom');

更好的是,如果您不必支持 IE < 11,您可以使用 数据集

el.dataset.custom
Ruan Mendes
2015-06-30

您正在混合使用 javascript 和 jquery。

$(...).attr('your_attr')
Nikhil Aggarwal
2015-06-30