Jquery 用于';td';包含的样式表中提到的样式
假设我在包含的名为custom.css的样式表中提到了“td”样式,在下面的代码中也提到了“样式”部分,那么jQuery中是否有方法获得样式表中提到的样式Jquery 用于';td';包含的样式表中提到的样式,jquery,Jquery,假设我在包含的名为custom.css的样式表中提到了“td”样式,在下面的代码中也提到了“样式”部分,那么jQuery中是否有方法获得样式表中提到的样式 <!DOCTYPE html> <html> <head> <link type="text/css" href="../custom.css" rel="stylesheet" /> <style type="text/css"> td {border:
<!DOCTYPE html>
<html>
<head>
<link type="text/css" href="../custom.css" rel="stylesheet" />
<style type="text/css">
td {border: 2px solid red;background-color:lightyellow;}
</style>
</head>
没有jQuery选择器来执行此操作。Javascript访问DOM,DOM不直接“知道”一个元素为什么具有它所具有的计算样式。此外,正因为如此,DOM无法跟踪没有给定样式声明的计算样式 也就是说,可以禁用给定的样式表: 可以使用此方法关闭给定的样式表,检查目标元素的计算样式,然后重新启用样式表。您将使用上一个样式,但用户不会看到任何情况发生:
var ele = document.getElementById('my_div');
document.styleSheets[3].disabled = true;
var bg_color = window.getComputedStyle(ele).backgroundColor;
document.styleSheets[3].disabled = false;
alert('Original background color is: '+bg_color);
试试看:
把它放在一起,您可以创建一个脚本,在document.styleSheets
中循环找到目标工作表,禁用它,测量目标元素的计算样式,然后重新启用目标工作表
这与内联样式没有冲突——但是您也可以通过禁用所有样式表,然后选中元素。style
文档
- MDN上的
document.styleSheets
MDN上的对象-样式表
- MDN上的
window.getComputedStyle
- MDN上的
element.style
var ele = document.getElementById('my_div');
document.styleSheets[3].disabled = true;
var bg_color = window.getComputedStyle(ele).backgroundColor;
document.styleSheets[3].disabled = false;
alert('Original background color is: '+bg_color);