javascript - 获取特定的内联 CSS 样式和样式名称

标签 javascript jquery html css

我正在寻找一种从元素中获取特定内联 css 样式的方法,包括样式名称本身和值。

我有一个包含不同内联样式的元素,就像这样。

<div style="background-color:red; display:block; background-size:cover; background-attachment:fixed; background-repeat:repeat-y; cursor:pointer; width:100%"></div>

我想获取该元素的样式(包括样式名称本身和值),但只有那些与“背景”有关的样式,而忽略其他元素,如“显示、光标、宽度”等

因此,为了使用 jQuery 获取样式,我只需这样做

$("div").attr("style");

这将返回元素的所有样式,包括我不想要的样式。我正在寻找的解决方案会返回类似这样的内容,它会忽略与“背景-”无关的其他样式

background-color:red; background-size:cover; background-attachment:fixed; background-repeat:repeat-y;

我知道我可以得到这样的个人风格

$("div").css("background");
$("div").css("background-size");

问题是它只获取样式值,这是个问题,因为“背景”也可能是“背景图像”,或者“背景重复-y”也可能是“背景重复-x” ".

最佳答案

字符串操作是这项工作的错误工具,我很惊讶其他答案使用它。 style 元素是为此任务而设计的。

您可以通过查看 element.style 找到所有内联样式的列表。该对象看起来像这样:

enter image description here

您可以看到它包含的每条内联 CSS 规则彼此分开。这是一个非常简短的现场演示,它将此对象打印到控制台,以便您明白我的意思:

var el = document.getElementById("thediv");
console.log(el.style);
<div id="thediv" style="background-color:red; display:block; background-size:cover; background-attachment:fixed; background-repeat:repeat-y; cursor:pointer; width:100%"></div>

该对象包含一个可迭代的规则列表(例如 element.style[0]background-color),以及一个字典,以便您可以通过名称获取特定规则。然后您应该能够轻松地过滤此列表以获得您正在寻找的任何特定规则。


这是一个现场演示,它向您展示了如何获取其中包含字符串 background 的所有规则(打开控制台)。它将结果放入易于访问的名称和值对数组中:

var el = document.getElementById("thediv");

var result = [];

for (var i = 0; i < el.style.length; i++) {
    if (el.style[i].indexOf("background") !== -1) {
        result.push({name: el.style[i], value: el.style[el.style[i]]});
    }
}

console.log(result);
<div id="thediv" style="background-color:red; display:block; background-size:cover; background-attachment:fixed; background-repeat:repeat-y; cursor:pointer; width:100%"></div>

关于javascript - 获取特定的内联 CSS 样式和样式名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32895863/

相关文章:

javascript - 在鼠标滚轮滚动时更改选择输入中的所选元素

jquery - Bootstrap : sticky footer or affix?

php - 简单的 html dom - 如何将 dt/dd 元素获取到数组?

html - 坚持尝试布局我的领域

javascript - 在视频末尾运行 WordPress 函数 - video.js + WordPress

javascript - div 中的 ng-repeat 不起作用

javascript - 验证输入标签中的最大金额 : (Aurelia)

javascript - 插入跨域表单、iframe 或 javascript?

javascript - 在加载更多用户之前滚动未到达页面末尾

php - 这个 CSS 样式会影响我的 PHP 代码吗?