gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 13:06:10 25 4
gpt4 key购买 nike

我正在寻找一种从元素中获取特定内联 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com