From this code:
HTML
<div class="test"></div>
CSS
.test {
background-color:red;
font-size:20px;
-custom-data1: value 1;
-custom-data2: 150;
-custom-css-information: "lorem ipsum";
}
With javascript -- for example from a $('.test')
-- how can I get a list of the CSS attributes wich have the property name starting with the prefix "-custom-" ?
(they can have various name, but always the same prefix)
I would like to get this:
{
customData1: "value 1",
customData2: 150,
customCssInformation: "lorem ipsum"
}
I know that I can also use the data-
HTML attribute, but for some very specifics reasons I need to use a CSS equivalent. Thanks for your help.
CSS (Cascading Style Sheets) is used to style and layout web pages — for example, to alter the font, color, size, and spacing of your content, split it into multiple columns, or add animations and other decorative features.
What is CSS? CSS is the language for describing the presentation of Web pages, including colors, layout, and fonts. It allows one to adapt the presentation to different types of devices, such as large screens, small screens, or printers. CSS is independent of HTML and can be used with any XML-based markup language.
HTML Vs. CSS. HTML is a markup language used to create static web pages and web applications. CSS is a style sheet language responsible for the presentation of documents written in a markup language.
There are three types of CSS which are given below: Inline CSS. Internal or Embedded CSS. External CSS.
Short Answer: IE 9 will give you these values.
However, Firefox/Chrome/Safari parse them out.
example jsfiddle
you can loop through the document's stylesheets to find a match to the desired selector (note that this can be a costly procedure especially on sites with large/multiple CSS files)
var css = document.styleSheets,
rules;
// loop through each stylesheet
for (var i in css) {
if (typeof css[i] === "object" && css[i].rules || css[i].cssRules) {
rules = css[i].rules || css[i].cssRules;
// loop through each rule
for (var j in rules) {
if (typeof rules[j] === "object") {
if (rules[j].selectorText) {
// see if the rule's selectorText matches
if (rules[j].selectorText.indexOf('.test') > -1) {
// do something with the results.
console.log(rules[j].cssText);
$('.test').html(rules[j].cssText);
}
}
}
}
}
}
you'll notice in browsers other than IE 9 (haven't tested IE 8 or lower) that the -custom-
styles have been removed from the cssText
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With