我想知道是否可以通过javascript或jquery修改css的“*”选择器。
例如,我有以下内容:
* {
margin: 0px;
padding: 0px;
list-style: none;
text-decoration: none;
font-family: 'Roboto', sans-serif;
}
我需要通过javascript或jquery“font-family”进行修改。
从技术上讲,*选择所有元素。所以,所有HTML元素都应该在正文中,对吗?因此,当您更改它时,更改整个身体而不是所有元素。
$('body').CSS({'font-family':})
要么
$('*').CSS({'font-family':})
首先,您应该选择DOM的元素。然后我们可以通过使用javascript做任何我们想要的事情,如下所示。
getElementsByTagName("*")
将返回DOM中的所有元素。
var allElements = document.getElementsByTagName("*");
for (var i = 0, len = allElements.length; i < len; i++) {
var element = allElements[i];
// Change any style you want
// Ex- element.style.border = ...
}
参考:https://www.w3schools.com/jsref/met_document_getelementsbytagname.asp
只是同样的东西你的选择器将是*
...
如果使用jQuery,$("*").css({"font-family": "Arial"});
也是如此...
但是纯JavaScript,你可以这样做:
document.querySelectorAll("*").forEach(el => el.style.fontFamily = "Arial");
您可以从JS访问样式表并直接更改它们(而不是通过过滤/更改任何html节点)更多信息qazxsw poi。
here
let rules=document.styleSheets[0].cssRules;
let rule= [...rules].find(r=> r.selectorText=="*" );
rule.style.fontFamily="cursive";
* {
margin: 0px;
padding: 0px;
list-style: none;
text-decoration: none;
font-family: 'Roboto', sans-serif;
}
您可以在纯Javascript中执行以下操作:
Example test
<div style="font-family: 'Roboto'">No font change</div>
这将循环遍历DOM中的每个元素并添加CSS。
或者,如果您使用的是Jquery,则可以采用更简单的方法。见下文
var everything = document.querySelectorAll("*");
for(var i=0; i < everything.length; i++) {
everything[i].style.fontFamily = "Arial";
//add your CSS styles here
}
或者只是简单地塑造身体
$("*").css("font-family","Arial");
试试这个
$("body").css("font-family","Arial");