Javascript 如何知道id或类是否有样式?
(问题是还没有用这样的id或类创建元素。) jQuery非常适合这种类型的东西Javascript 如何知道id或类是否有样式?,javascript,Javascript,(问题是还没有用这样的id或类创建元素。) jQuery非常适合这种类型的东西 // instead of 'width' could be 'font-size', 'color', 'position', etc var result = getCSS('some_id_name_or_class_name', 'width'); // may be the value or 'null' if there is no style for such an id name or a clas
// instead of 'width' could be 'font-size', 'color', 'position', etc
var result = getCSS('some_id_name_or_class_name', 'width');
// may be the value or 'null' if there is no style for such an id name or a class name
alert(result);
您可以给该选项一个快照(它仅适用于ID,但您可以修改它):
不过,你绝对应该去链接。有一些怪癖(不同的浏览器期望styleProp参数采用不同的格式)
同样,您可以以此为基础,构建所需的功能(例如隐藏跨浏览器问题,使其与类一起工作,等等)
编辑
由于您不希望获取计算值,因此可以使用document.styleSheets集合从CSS中读取值:
同样,还有一些跨浏览器实现细节(cssRules vs.rules),但您可以编写代码来解决这些细节。您想获取该元素的
样式声明还是计算样式(=影响该元素的所有样式的总和)?另外,您的两个要求相差甚远。jQuery在我国是禁止的=(jQuery在这方面很好,但你可能也想提供一个代码示例。@Soverin-说真的?我不知道任何国家禁止javascript库…@Soverin那是哪个国家?是的,政府只禁止jQuery。Justin,问题是还没有用这样的id或类创建元素。@Soverin-你需要一个元素在获取页面的计算样式值之前,请在页面上输入ent。不,我不需要计算样式,只需要声明样式。元素将在这样的id名称或类名下创建。我需要知道是使用用户声明的样式还是设置默认样式。@Soverin-为什么在将元素添加到页面之前需要这些样式因为这个JavaScript程序允许用户将一些样式设置为css,如果声明的任何样式使用这些样式,则使用默认样式。
alert($("#yourIdHere").css("whateverCssPropertyYouWant"));
function getStyle(el,styleProp)
{
var x = document.getElementById(el);
if (x.currentStyle)
var y = x.currentStyle[styleProp];
else if (window.getComputedStyle)
var y = document.defaultView
.getComputedStyle(x,null)
.getPropertyValue(styleProp);
return y;
}