获取数据属性==某事的元素

时间:2015-12-10 15:52:16

标签: javascript jquery html5

在jQuery或JavaScript中,我想要获取一个元素,或者更确切地说,通过其data属性选择一个元素,然后使用addClass将CSS类应用于所选元素。

有人知道怎么做吗?我已经尝试了所有不同的.attr和.prop方法,但它们没有做我想要的,因为我事先并不知道ID或任何元素,因为它是动态设置的。

3 个答案:

答案 0 :(得分:3)

您可以使用jQuery选择器:

<span class="1"><br>hi how<br>are</span><span>you?</span><br>

或者从以下开始:

var string="<span class="1"><br>hi how<br>are</span><span>you?</span><br>";
var c=4+tag_count(4,string);


function tag_count(n,string) {
    var variation=0;
    var i;
    for(i=0;i<=n;i++) {
        if(string.charAt(i)=="<") {
            var j=0;
            while((string.charAt(i+j)!=">")&&(string.charAt(i+j)!==undefined)) {
                j++;
            }
            n=n+j+1;
            variation=variation+j+1;
        }
    }
    return(variation);
}

结束于:

$('[data-something="something"]')

然后你可以使用:

$('[data-something^="something"]')

以上内容将匹配所有具有以下内容的元素:

$('[data-something$="something"]')

给他们上课$('[data-something="something"]').addClass(new_class_name);

答案 1 :(得分:0)

使用Attribute Equals Selector

$("p[data-yourdata='whatever']")

答案 2 :(得分:0)

如果您想使用本机JavaScript方法并且不担心IE8及更低版本的浏览器支持,您可以使用querySelector或querySelectorAll,如本答案中所述:javascript: select all elements with "data-" attribute (without jQuery)

也就是说,如果您已经使用jQuery的addClass和/或其他选择器方法,那么可能更容易坚持使用上面列出的选择器。

这个答案给出了jQuery优势/成本与原生选择器的完美分类:jQuery vs document.querySelectorAll