Javascript 使用jQuery获取不使用';不存在于页面中

Javascript 使用jQuery获取不使用';不存在于页面中,javascript,jquery,html,css,Javascript,Jquery,Html,Css,正如标题中所说。我想要这个javascript $("#mrNotAppearing").css("background-color"); 要基于此css返回“红色” #mrNotAppearing { background-color: red; } 假设文档中没有实际具有id的元素mrNotAppearing 我正在使用jQuery的媒体查询检查来获得窗口宽度,我认为使用一些“虚拟”css可能会很好,因为它肯定不会妨碍任何事情 我也愿意接受其他达到同样效果的建议 计划B,我只使用

正如标题中所说。我想要这个javascript

$("#mrNotAppearing").css("background-color");
要基于此css返回“红色”

#mrNotAppearing {
    background-color: red;
}
假设文档中没有实际具有id的元素
mrNotAppearing

我正在使用jQuery的媒体查询检查来获得窗口宽度,我认为使用一些“虚拟”css可能会很好,因为它肯定不会妨碍任何事情

我也愿意接受其他达到同样效果的建议

计划B,我只使用实际的css,或者在body中添加一些虚拟属性

为清晰起见,更新:

在css中,很难将需要特定窗口宽度的javascript与媒体查询宽度同步,这可能会导致布局问题

相反,您可以查询css本身的状态。因此:

body {
    background-color: blue;
}
@media (min-width: 42em) {
    body {
        background-color: red;
    }
}
然后,在javascript中:

if($(body).css("background-color")==="red"){
    // we know down to the pixel that it's safe to trigger the javascript  
    // because the media query went off.
}
我所要做的就是在css中添加一个虚拟条目,该条目将仅用于触发javascript。我可以使用一个现有的属性,也可能不得不使用,但我想让它明确我在做什么。或者我至少在玩弄这个主意

我为这一混乱道歉。我是为了简洁


另外,问题的重点是使用一种100%不会出现在文档中的样式。而且永远不会改变,即使布局改变了。

编辑:哈,好的,最后的答案。em确实以px的形式返回。所以

我要回答我自己的问题,因为我很确定这对任何人都没有意义。此外,我不知道这是否是一个好主意,但它似乎适合我的目的。因此,我的解决方案是:

设置
标记的样式。它在DOM中,不是结构化的,jQuery可以从中获取css属性。就像这样

style {
    width: 672px;
}
然后

$("style").css("width"); 
将返回
672px

我可能想得太多了。而且可能仍然没有意义。我不知道这在除了Chrome之外的任何浏览器上是否有效,或者出于某种原因这是一个糟糕的想法,但我认为它在语义上有点吸引人


还有其他想法吗?

您可以通过
文档访问所有css规则。样式表
,无需应用于元素

下面是关于如何基于类名获取样式的另一个答案:


编辑

尽管如此,在画布上短暂渲染元素要容易得多:

var $dummy  = $('<div>').addClass('class1 class2 class3').css({position: fixed, left: 100%}).appendTo('body');

// collect all info you need here;

$dummy.remove();
var$dummy=$('').addClass('class1 class2 class3').css({position:fixed,left:100%}).appendTo('body');
//在这里收集所有你需要的信息;
$dummy.remove();

我不明白)))这听起来像是你试图做一些事情来解决其他问题,但你应该问如何解决其他问题。如果你知道你想从#mrNotAppearing获得背景色,为什么不给将使用该颜色的元素,mrNotAppearing id?或者更可能创建一个新类。可能的重复:一个丑陋的方法可能是从样式标记和
$('style')
中检索整个样式,并解析其内容。我认为它非常出色,我想不出任何不起作用的原因。在Chrome、IE、Firefox、Safari和Opera中工作。是的,我只需要知道我们应该滥用哪些属性。自定义属性将是理想的,但到目前为止我运气不太好
.css(“-layout”)
真的很棒。可能是现有选项中最好的。谢谢你的输入,瑞克。我认为你不会做得比这更好,你可以接受自己的答案。如果风格是基于媒体查询的响应,反复浏览
样式表
不会有帮助。我很确定你可以在那里找到任何样式,与
匹配媒体
结合,找到你需要的。但在屏幕外渲染div要方便得多。我将更新一个新的建议。
matchMedia
对我来说是新的,但看起来在这种情况下它会起作用。但我不确定OP自己的解决方案是否可以改进。