有没有一种方法可以让jQuery从现有元素中获取所有CSS并将其应用到另一个元素而不将它们全部列出?
我知道如果它们是样式属性,它会起作用attr(),但我的所有样式都在外部样式表中.
如何从元素A到元素B获得每种样式(甚至是继承的)?在javascript或使用jquery.
让我们告诉我有一个元素<p class="foo">...</p>,我追加新元素<div />,除了内容外,它们看起来都是一样的.
任何人都可以帮我一个脚本..或一种获得价值的方法
height : 1196px;
width: 284px;
Run Code Online (Sandbox Code Playgroud)
从计算样式表(webkit).我知道IE与往常不同.我无法访问iframe(跨域) - 我只需要高度/宽度.
我需要的屏幕截图(用红色圈出).我如何访问这些属性?

资源
<iframe id="frameId" src="anotherdomain\brsstart.htm">
<html id="brshtml" xmlns="http://www.w3.org/1999/xhtml">
\--I WANT THIS ELEMENTS COMPUTED BROWSER CSS HEIGHT/WIDTH
<head>
<title>Untitled Page</title>
</head>
<body>
BLA BLA BLA STUFF
</body>
</html>
\--- $('#frameId').context.lastChild.currentStyle
*This gets the actual original style set on the other domain which is "auto"
*Now how to getComputed Style?
</iframe>
Run Code Online (Sandbox Code Playgroud)
我得到的最接近的是这个
$('#frameId').context.lastChild.currentStyle
Run Code Online (Sandbox Code Playgroud)
这给了我HTML元素的实际样式,即"auto",这就是iframed文档中的设置.
如何获得所有浏览器用于计算滚动条的计算样式,并检查元素值?
使用Tomalaks回答我为webkit制作了这个可爱的脚本
window.getComputedStyle(document.getElementById("frameId"), null).getPropertyValue("height")
Run Code Online (Sandbox Code Playgroud)
要么
window.getComputedStyle(document.getElementById("frameId"), null).getPropertyCSSValue("height").cssText
Run Code Online (Sandbox Code Playgroud)
结果150px
相同
$('#frameId').height();
Run Code Online (Sandbox Code Playgroud)
所以我让他们在头部添加一个'brshtml'的id-也许它会帮助我更容易地选择元素.Webkit检查现在向我显示html #brshtml但我无法使用它来选择它getelementbyid
我有一个DOM情况,如下所示:
A是B的祖先,它又是C的祖先
最初,A具有继承到B和C的样式
我希望通过给它一个突出显示的课程来暂时突出显示B.
...然而...
我想"逃避" C上的突出显示,以便尽可能少地改变
在CSS的级联范例中,这似乎是不可能的."取消应用"样式的唯一方法是应用重写样式.我的问题是突出显示代码在一个插件中,想要与任意页面的现有CSS一起播放...我的选择器是这样的:
/* http://www.maxdesign.com.au/articles/multiple-classes/ */
.highlighted.class1 {
background-color: ...
background-image: ...
...
}
.highlighted.class2 {
...
}
/* ... */
.highlighted.classN {
...
}
Run Code Online (Sandbox Code Playgroud)
背景是一个棘手的问题...因为虽然它不是继承的CSS属性,但更改祖先的背景可以改变后代的外观(如果它们具有透明背景).所以这是一个导致我试图否定的那种破坏的例子.: - /
是否存在人们如何以这种方式抑制变化的继承?也许使用缓存计算样式等技巧?我正在寻找任何默认技术,它至少比功能级别的钩子更聪明,它说"嘿,插件突出了这个节点......做你需要的视觉补偿."
更新我已经创建了这个场景的基本JsFiddle,以帮助使讨论更清晰:
以下是使用jQuery获取一个css属性的方法:
$('someObject').css('attribute')
你怎么得到它们的?(没有指定,最好是以下格式,以便以后可以用jQuery重新应用):
cssObj = {
'overflow':'hidden',
'height':'100%',
'position':'absolute',
}
Run Code Online (Sandbox Code Playgroud)
谢谢!!
编辑
我试图获取的方法在样式表中声明(它们不是内联的).很抱歉没有说明.
我的javascript包含在X的网站中,但我对她的网站或其中包含的内容没有任何其他控制权.如果她的风格#element,我想不管它,但如果她没有,我有一个我会注入的样式表<head>.有没有办法检测她是否有样式?
检查它的高度为0或1失败,因为它有一些内容并且浏览器做出默认决定.
任何方式javascript/jquery /其他框架来告诉一个样式的CSS特异性将回答这个并且令人难以置信.
我正在开发一个bookmarklet项目.因此,当用户点击书签时,他可以抓取网页的部分内容并在其他地方查看.
问题是部分元素(让我们假设div)应用了css样式和类.
有没有办法遍历所选div的所有子元素并将类属性转换为样式属性,以便我可以保持格式化?
例如下面的示例截图; 我需要取出所有应用的类并将它们转换为选定区域中的样式属性.