在jQuery或JavaScript中,我想要获取一个元素,或者更确切地说,通过其data属性选择一个元素,然后使用addClass将CSS类应用于所选元素。
有人知道怎么做吗?我已经尝试了所有不同的.attr和.prop方法,但它们没有做我想要的,因为我事先并不知道ID或任何元素,因为它是动态设置的。
答案 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)
$("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