Jquery 用于';td';包含的样式表中提到的样式

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:

假设我在包含的名为custom.css的样式表中提到了“td”样式,在下面的代码中也提到了“样式”部分,那么jQuery中是否有方法获得样式表中提到的样式

<!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

你的意思是用jquery实际获取样式元素?并解析样式?是的,因为td CSS存在于stylesheet custom.CSS中,也存在于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);