आप जावास्क्रिप्ट के साथ सी.एस.एस. नियम मानों को कैसे पढ़ते हैं?


115

मैं एक सीएसएस नियम की सभी सामग्री के साथ एक स्ट्रिंग वापस करना चाहूंगा, जैसे प्रारूप आप इनलाइन शैली में देखेंगे। मैं यह जानने में सक्षम होना चाहता हूं कि एक विशेष नियम में क्या निहित है, यह जानने के बिना, इसलिए मैं उन्हें स्टाइल नाम (जैसे .style.width) से बाहर नहीं निकाल सकता हूं

सीएसएस:

.test {
    width:80px;
    height:50px;
    background-color:#808080;
}

अब तक का कोड:

function getStyle(className) {
    var classes = document.styleSheets[0].rules || document.styleSheets[0].cssRules
    for(var x=0;x<classes.length;x++) {
        if(classes[x].selectorText==className) {
            //this is where I can collect the style information, but how?
        }
    }
}
getStyle('.test')

कृपया इसे भी देखें। stackoverflow.com/questions/53592919/…
मिथिलेश कुमार

जवाबों:


90

यहाँ से तैयार किया गया है , जो कि स्क्रूलिफ़ के उत्तर पर है:

function getStyle(className) {
    var cssText = "";
    var classes = document.styleSheets[0].rules || document.styleSheets[0].cssRules;
    for (var x = 0; x < classes.length; x++) {        
        if (classes[x].selectorText == className) {
            cssText += classes[x].cssText || classes[x].style.cssText;
        }         
    }
    return cssText;
}

alert(getStyle('.test'));

11
ध्यान दें कि className को CSS फ़ाइल में प्रयुक्त चयनकर्ता से बिल्कुल मेल खाना चाहिए। उदाहरण के लिए getStyle ("। Article a") कुछ भी नहीं पाएगा यदि किसी शैली को इस तरह वर्णित किया गया है ".article a, लेख a: hover {color: #ccc;}"।
विलीस पॉलुस्कास

1
यह क्रोम में काम नहीं करता है, लेकिन यह फ़ायरफ़ॉक्स में काम करता है, क्या समस्या हो सकती है ??
जॉनडेप

13
यदि कई स्टाइलशीट हैं, तो आपको उन लोगों के माध्यम से भी लूप करना होगा। वे (var i = 0; i <document.styleSheets.length; i ++) {var s = document.styleSheets [i];}
sur

@ सूर्या एक अनुकूलित पूर्ण काम कर रहे समाधान के लिए मेरा जवाब देखें
यार

2
@ जॉनीडैप क्रोम में var classesहोना चाहिए document.styleSheets[0].rules[0].cssRules। यह (रचनात्मक रूप से) जवाब में शिम को जोड़ा जा सकता है।
हेनरिक क्रिस्टेंसेन

23

चूंकि "nsdel" से स्वीकृत उत्तर केवल एक स्टाइलशीट के साथ एक दस्तावेज़ में उपलब्ध है, यह अनुकूलित पूर्ण कार्य समाधान है:

    /**
     * Gets styles by a classname
     * 
     * @notice The className must be 1:1 the same as in the CSS
     * @param string className_
     */
    function getStyle(className_) {

        var styleSheets = window.document.styleSheets;
        var styleSheetsLength = styleSheets.length;
        for(var i = 0; i < styleSheetsLength; i++){
            var classes = styleSheets[i].rules || styleSheets[i].cssRules;
            if (!classes)
                continue;
            var classesLength = classes.length;
            for (var x = 0; x < classesLength; x++) {
                if (classes[x].selectorText == className_) {
                    var ret;
                    if(classes[x].cssText){
                        ret = classes[x].cssText;
                    } else {
                        ret = classes[x].style.cssText;
                    }
                    if(ret.indexOf(classes[x].selectorText) == -1){
                        ret = classes[x].selectorText + "{" + ret + "}";
                    }
                    return ret;
                }
            }
        }

    }

सूचना: चयनकर्ता को सीएसएस में समान होना चाहिए।


global_खिड़की वस्तु के लिए सिर्फ एक उपनाम नहीं है। मैंने कोड स्निपेट संपादित किया है। यह अब काम करना चाहिए
यार

3
यदि कोई स्टाइलशीट में कोई नियम या cssRules नहीं हैं (जो हो सकता है!) तो आपका कोड विफल हो जाता है (यदि (वर्ग) जारी हैं) var कक्षाओं के बाद = styleSheets [i] .rules || स्टाइलशीट [i] .cssRules; var classesLength = classes.length; मेरा संपादन देखें
kofifus

1
काम करता है, लेकिन
brauliobo

@kofifus आपका दृष्टिकोण जोड़ा गया है
दोस्त

ध्यान दें कि यह जीसी के बाद से काम नहीं करता है 64.0 versio: stackoverflow.com/questions/48753691/...
Shalev लेवी

18

समाधान 1 (CROSS-BROWSER)

function GetProperty(classOrId,property)
{ 
    var FirstChar = classOrId.charAt(0);  var Remaining= classOrId.substring(1);
    var elem = (FirstChar =='#') ?  document.getElementById(Remaining) : document.getElementsByClassName(Remaining)[0];
    return window.getComputedStyle(elem,null).getPropertyValue(property);
}

alert( GetProperty(".my_site_title","position") ) ;

समाधान 2 (CROSS-BROWSER)

function GetStyle(CLASSname) 
{
    var styleSheets = document.styleSheets;
    var styleSheetsLength = styleSheets.length;
    for(var i = 0; i < styleSheetsLength; i++){
        if (styleSheets[i].rules ) { var classes = styleSheets[i].rules; }
        else { 
            try {  if(!styleSheets[i].cssRules) {continue;} } 
            //Note that SecurityError exception is specific to Firefox.
            catch(e) { if(e.name == 'SecurityError') { console.log("SecurityError. Cant readd: "+ styleSheets[i].href);  continue; }}
            var classes = styleSheets[i].cssRules ;
        }
        for (var x = 0; x < classes.length; x++) {
            if (classes[x].selectorText == CLASSname) {
                var ret = (classes[x].cssText) ? classes[x].cssText : classes[x].style.cssText ;
                if(ret.indexOf(classes[x].selectorText) == -1){ret = classes[x].selectorText + "{" + ret + "}";}
                return ret;
            }
        }
    }
}

alert( GetStyle('.my_site_title') );

6

कुछ ब्राउज़र अंतरों से अवगत होना:

सीएसएस को देखते हुए:

div#a { ... }
div#b, div#c { ... }

और InsDel के उदाहरण को देखते हुए, वर्गों में FF में 2 कक्षाएं और IE7 में 3 कक्षाएं होंगी ।

मेरा उदाहरण यह दिखाता है:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <style>
    div#a { }
    div#b, div#c { }
    </style>
    <script>
    function PrintRules() {
    var rules = document.styleSheets[0].rules || document.styleSheets[0].cssRules
        for(var x=0;x<rules.length;x++) {
            document.getElementById("rules").innerHTML += rules[x].selectorText + "<br />";
        }
    }
    </script>
</head>
<body>
    <input onclick="PrintRules()" type="button" value="Print Rules" /><br />
    RULES:
    <div id="rules"></div>
</body>
</html>

4

यहाँ एक पृष्ठ में सभी नियमों के माध्यम से पुनरावृति के लिए कोड है:

function iterateCSS(f) {
  for (const styleSheet of window.document.styleSheets) {
    const classes = styleSheet.rules || styleSheet.cssRules;
    if (!classes) continue;

    for (const cssRule of classes) {
      if (cssRule.type !== 1 || !cssRule.style) continue;
      const selector = cssRule.selectorText, style=cssRule.style;
      if (!selector || !style.cssText) continue;
      for (let i=0; i<style.length; i++) {
        const propertyName=style.item(i);
        if (f(selector, propertyName, style.getPropertyValue(propertyName), style.getPropertyPriority(propertyName), cssRule)===false) return;
      }
    }
  }
}

iterateCSS( (selector, propertyName, propertyValue, propertyPriority, cssRule) => {
  console.log(selector+' { '+propertyName+': '+propertyValue+(propertyPriority==='important' ? ' !important' : '')+' }');
});


2
function getStyle(className) {
    document.styleSheets.item("menu").cssRules.item(className).cssText;
}
getStyle('.test')

नोट: "मेनू" एक तत्व आईडी है जिसे आपने सीएसएस लागू किया है। "क्लासनेम" एक सीएसएस क्लास नाम है जिसे हमें इसका पाठ प्राप्त करने की आवश्यकता है।


क्या आप सुनिश्चित हैं कि यह काम कर रहा है? (AFAIK itemविधि एक पूर्णांक सूचकांक लेता है, एक वर्गनाम नहीं)।
जुलिएन क्रोनग

पूरा बकवास
tnt-rox

2

मुझे वास्तव में काम करने के लिए कोई भी सुझाव नहीं मिला है। यहां एक और अधिक मजबूत है जो कक्षाओं को खोजने के दौरान रिक्ति को सामान्य करता है।

//Inside closure so that the inner functions don't need regeneration on every call.
const getCssClasses = (function () {
    function normalize(str) {
        if (!str)  return '';
        str = String(str).replace(/\s*([>~+])\s*/g, ' $1 ');  //Normalize symbol spacing.
        return str.replace(/(\s+)/g, ' ').trim();           //Normalize whitespace
    }
    function split(str, on) {               //Split, Trim, and remove empty elements
        return str.split(on).map(x => x.trim()).filter(x => x);
    }
    function containsAny(selText, ors) {
        return selText ? ors.some(x => selText.indexOf(x) >= 0) : false;
    }
    return function (selector) {
        const logicalORs = split(normalize(selector), ',');
        const sheets = Array.from(window.document.styleSheets);
        const ruleArrays = sheets.map((x) => Array.from(x.rules || x.cssRules || []));
        const allRules = ruleArrays.reduce((all, x) => all.concat(x), []);
        return allRules.filter((x) => containsAny(normalize(x.selectorText), logicalORs));
    };
})();

यह क्रोम कंसोल से एक्शन में है।

यहां छवि विवरण दर्ज करें


1
यह इस पृष्ठ पर सभी उत्तरों का mecha है। मैं यहाँ तक कहूँगा कि यह
गीथब

यह IE11 में काम नहीं करता है, क्योंकि उपलब्ध सिंटैक्स के साथ Array.map () समर्थित नहीं है। मैं इसे पुराने फंक्शन में बदलने का सुझाव दूंगा () {रिटर्न xxx; } बेहतर अनुकूलता के लिए वाक्य रचना। अन्यथा, महान जवाब!
डेमनब्लैक

1
मैंने IE11 के साथ काम करने के लिए इसे संशोधित किया (जैसे ES5)। यहां आपकी ज़रूरत की हर चीज़ के साथ एक JSField है: jsfiddle.net/xp5r8961
Demonblack

1

मैंने एक समान सहायक फ़ंक्शन बनाया जो इस पृष्ठ के लिए अनावश्यक शैलियों को दर्शाता है। एक संलग्न कर देता है <div>शरीर जहां इस्तेमाल नहीं किया है कि सभी शैलियों को सूचीबद्ध करने के।

(फायरबग कंसोल के साथ उपयोग किया जाना है)

(function getStyles(){var CSSrules,allRules,CSSSheets, unNeeded, currentRule;
CSSSheets=document.styleSheets;

for(j=0;j<CSSSheets.length;j++){
for(i=0;i<CSSSheets[j].cssRules.length;i++){
    currentRule = CSSSheets[j].cssRules[i].selectorText;

    if(!document.querySelectorAll(currentRule).length){ 
       unNeeded+=CSSSheets[j].cssRules[i].cssText+"<br>"; 
  }       
 }
}

docBody=document.getElementsByTagName("body")[0];
allRulesContainer=document.createElement("div");
docBody.appendChild(allRulesContainer);
allRulesContainer.innerHTML=unNeeded+isHover;
return false
})()

1

अधिक पूर्ण परिणाम प्राप्त करने के लिए जुल्मोट के उत्तर को अनुकूलित किया है। यह विधि उन शैलियों को भी लौटाएगी जहां चयनकर्ता के लिए वर्ग का हिस्सा है।

//Get all styles where the provided class is involved
//Input parameters should be css selector such as .myClass or #m
//returned as an array of tuples {selectorText:"", styleDefinition:""}
function getStyleWithCSSSelector(cssSelector) {
    var styleSheets = window.document.styleSheets;
    var styleSheetsLength = styleSheets.length;
    var arStylesWithCSSSelector = [];

    //in order to not find class which has the current name as prefix
    var arValidCharsAfterCssSelector = [" ", ".", ",", "#",">","+",":","["];

    //loop through all the stylessheets in the bor
    for(var i = 0; i < styleSheetsLength; i++){
        var classes = styleSheets[i].rules || styleSheets[i].cssRules;
        var classesLength = classes.length;
        for (var x = 0; x < classesLength; x++) {
            //check for any reference to the class in the selector string
            if(typeof classes[x].selectorText != "undefined"){
                var matchClass = false;

                if(classes[x].selectorText === cssSelector){//exact match
                    matchClass=true;
                }else {//check for it as part of the selector string
                    //TODO: Optimize with regexp
                    for (var j=0;j<arValidCharsAfterCssSelector.length; j++){
                        var cssSelectorWithNextChar = cssSelector+ arValidCharsAfterCssSelector[j];

                        if(classes[x].selectorText.indexOf(cssSelectorWithNextChar)!=-1){
                            matchClass=true;
                            //break out of for-loop
                            break;
                        }
                    }
                }

                if(matchClass === true){
                    //console.log("Found "+ cssSelectorWithNextChar + " in css class definition " + classes[x].selectorText);
                    var styleDefinition;
                    if(classes[x].cssText){
                        styleDefinition = classes[x].cssText;
                    } else {
                        styleDefinition = classes[x].style.cssText;
                    }
                    if(styleDefinition.indexOf(classes[x].selectorText) == -1){
                        styleDefinition = classes[x].selectorText + "{" + styleDefinition + "}";
                    }
                    arStylesWithCSSSelector.push({"selectorText":classes[x].selectorText, "styleDefinition":styleDefinition});
                }
            }
        }
    }
    if(arStylesWithCSSSelector.length==0) {
        return null;
    }else {
        return arStylesWithCSSSelector;    
    }
}

इसके अलावा, मैंने एक फ़ंक्शन बनाया है जो आपके रूट प्रदान (एक jquery चयनकर्ता के माध्यम से) के रूट-ट्री के सीएसएस शैली परिभाषाओं को इकट्ठा करता है।

function getAllCSSClassDefinitionsForSubtree(selectorOfRootElement){
    //stack in which elements are pushed and poped from
    var arStackElements = [];
    //dictionary for checking already added css class definitions
    var existingClassDefinitions = {}

    //use jquery for selecting root element
    var rootElement = $(selectorOfRootElement)[0];
    //string with the complete CSS output
    var cssString = "";

    console.log("Fetching all classes used in sub tree of " +selectorOfRootElement);
    arStackElements.push(rootElement);
    var currentElement;

    while(currentElement = arStackElements.pop()){
        currentElement = $(currentElement);
        console.log("Processing element " + currentElement.attr("id"));

        //Look at class attribute of element 
        var classesString = currentElement.attr("class");
        if(typeof classesString != 'undefined'){
            var arClasses = classesString.split(" ");

            //for each class in the current element
            for(var i=0; i< arClasses.length; i++){

                //fetch the CSS Styles for a single class. Need to append the . char to indicate its a class
                var arStylesWithCSSSelector = getStyleWithCSSSelector("."+arClasses[i]);
                console.log("Processing class "+ arClasses[i]);

                if(arStylesWithCSSSelector != null){
                    //console.log("Found "+ arStylesWithCSSSelector.length + " CSS style definitions for class " +arClasses[i]);
                    //append all found styles to the cssString
                    for(var j=0; j< arStylesWithCSSSelector.length; j++){
                        var tupleStyleWithCSSSelector = arStylesWithCSSSelector[j];

                        //check if it has already been added
                        if(typeof existingClassDefinitions[tupleStyleWithCSSSelector.selectorText] === "undefined"){
                            //console.log("Adding " + tupleStyleWithCSSSelector.styleDefinition);
                            cssString+= tupleStyleWithCSSSelector.styleDefinition;
                            existingClassDefinitions[tupleStyleWithCSSSelector.selectorText] = true;
                        }else {
                            //console.log("Already added " + tupleStyleWithCSSSelector.styleDefinition);
                        }
                    }
                }
            }
        }
        //push all child elments to stack
        if(currentElement.children().length>0){
            arStackElements= arStackElements.concat(currentElement.children().toArray());
        }
    }

    console.log("Found " + Object.keys(existingClassDefinitions).length + " CSS class definitions");
    return cssString;
}

ध्यान दें कि यदि एक वर्ग को एक ही चयनकर्ता के साथ कई बार परिभाषित किया गया है, तो उपरोक्त फ़ंक्शन केवल पहले उठाएगा। ध्यान दें कि उदाहरण jQuery का उपयोग करता है (लेकिन इसका उपयोग न करने के लिए कैब अपेक्षाकृत आसानी से फिर से लिखा जा सकता है)


1
एक गैर jquery समाधान (और एक jsfiddle ..) करने के लिए बहुत अच्छा होगा
kofifus

0

// IE में काम करता है, अन्य ब्राउज़रों के बारे में निश्चित नहीं ...

alert(classes[x].style.cssText);

0

यह संस्करण एक पृष्ठ पर सभी शैलियों के माध्यम से जाएगा। मेरी जरूरतों के लिए, शैलियों आमतौर पर 20+ स्टाइलशीट्स के 2 वें से अंतिम तक थीं, इसलिए मैं उन्हें पीछे की ओर देखता हूं।

    var getStyle = function(className){
        var x, sheets,classes;
        for( sheets=document.styleSheets.length-1; sheets>=0; sheets-- ){
            classes = document.styleSheets[sheets].rules || document.styleSheets[sheets].cssRules;
            for(x=0;x<classes.length;x++) {
                if(classes[x].selectorText===className) {
                    return  (classes[x].cssText ? classes[x].cssText : classes[x].style.cssText);
                }
            }
        }
        return false;
    };

0

मैंने उस वस्तु की वापसी जोड़ी है जहाँ विशेषताएँ शैली / मूल्यों को पार्स कर रही हैं:

var getClassStyle = function(className){
    var x, sheets,classes;
    for( sheets=document.styleSheets.length-1; sheets>=0; sheets-- ){
        classes = document.styleSheets[sheets].rules || document.styleSheets[sheets].cssRules;
        for(x=0;x<classes.length;x++) {
            if(classes[x].selectorText===className){
                classStyleTxt = (classes[x].cssText ? classes[x].cssText : classes[x].style.cssText).match(/\{\s*([^{}]+)\s*\}/)[1];
                var classStyles = {};
                var styleSets = classStyleTxt.match(/([^;:]+:\s*[^;:]+\s*)/g);
                for(y=0;y<styleSets.length;y++){
                    var style = styleSets[y].match(/\s*([^:;]+):\s*([^;:]+)/);
                    if(style.length > 2)
                        classStyles[style[1]]=style[2];
                }
                return classStyles;
            }
        }
    }
    return false;
};

style.cssText.match(...).1शून्य या वस्तु नहीं है
यार

Uncaught ReferenceError: classStyleTxt is not defined
१२:३१ पर जैक्सनक्रे

0

मैंने एक संस्करण बनाया जो सभी स्टाइलशीट की खोज करता है और एक कुंजी / मान ऑब्जेक्ट के रूप में मैच लौटाता है। आप चाइल्ड स्टाइल से मेल खाने के लिए भी स्टार्ट निर्दिष्ट कर सकते हैं।

getStylesBySelector('.pure-form-html', true);

रिटर्न:

{
    ".pure-form-html body": "padding: 0; margin: 0; font-size: 14px; font-family: tahoma;",
    ".pure-form-html h1": "margin: 0; font-size: 18px; font-family: tahoma;"
}

से:

.pure-form-html body {
    padding: 0;
    margin: 0;
    font-size: 14px;
    font-family: tahoma;
}

.pure-form-html h1 {
    margin: 0;
    font-size: 18px;
    font-family: tahoma;
}

कोड:

/**
 * Get all CSS style blocks matching a CSS selector from stylesheets
 * @param {string} className - class name to match
 * @param {boolean} startingWith - if true matches all items starting with selector, default = false (exact match only)
 * @example getStylesBySelector('pure-form .pure-form-html ')
 * @returns {object} key/value object containing matching styles otherwise null
 */
function getStylesBySelector(className, startingWith) {

    if (!className || className === '') throw new Error('Please provide a css class name');

    var styleSheets = window.document.styleSheets;
    var result = {};

    // go through all stylesheets in the DOM
    for (var i = 0, l = styleSheets.length; i < l; i++) {

        var classes = styleSheets[i].rules || styleSheets[i].cssRules || [];

        // go through all classes in each document
        for (var x = 0, ll = classes.length; x < ll; x++) {

            var selector = classes[x].selectorText || '';
            var content = classes[x].cssText || classes[x].style.cssText || '';

            // if the selector matches
            if ((startingWith && selector.indexOf(className) === 0) || selector === className) {

                // create an object entry with selector as key and value as content
                result[selector] = content.split(/(?:{|})/)[1].trim();
            }
        }
    }

    // only return object if we have values, otherwise null
    return Object.keys(result).length > 0 ? result : null;
}

मैं उत्पादन में शुद्ध-रूप परियोजना के हिस्से के रूप में इसका उपयोग कर रहा हूं । आशा करता हूँ की ये काम करेगा।


0

मैंने उसी समस्या का सामना किया। और लोगों की मदद से मैं वास्तव में एक स्मार्ट समाधान के साथ आया जो उस समस्या को पूरी तरह से हल करता है (क्रोम पर रन)।

नेटवर्क से सभी छवियों को निकालें

 function AllImagesUrl (domain){
  return  performance.getEntries()
    .filter( e=> 
       e.initiatorType == "img" &&
       new RegExp(domain).test(e.name) 
    )
  .map( e=> e.name.replace('some cleaning work here','') ) ```

0
const getStyle = query => [...document.querySelector(query).computedStyleMap().entries()].map(e=>(e[1]+=[],e)).map(e=>e.join`:`+';').join`\n`

एक पंक्ति में, प्रिंट किसी भी क्वेरी के लिए उत्पन्न सीएसएस प्रिंट करता है।


-2

उदाहरण के लिए @dude के आधार पर यह प्रासंगिक शैलियों को वापस करना चाहिए:

.recurly-input {                                                                                                                                                                             
  display: block;                                                                                                                                                                            
  border-radius: 2px;                                                                                                                                                                        
  -webkit-border-radius: 2px;                                                                                                                                                                
  outline: 0;                                                                                                                                                                                
  box-shadow: none;                                                                                                                                                                          
  border: 1px solid #beb7b3;                                                                                                                                                                 
  padding: 0.6em;                                                                                                                                                                            
  background-color: #f7f7f7;                                                                                                                                                                 
  width:100%;                                                                                                                                                                                
}

यह लौटेगा:

backgroundColor:
"rgb(247, 247, 247)"
border
:
"1px solid rgb(190, 183, 179)"
borderBottom
:
"1px solid rgb(190, 183, 179)"
borderBottomColor
:
"rgb(190, 183, 179)"
borderBottomLeftRadius
:
"2px"
borderBottomRightRadius
:
"2px"
borderBottomStyle
:
"solid"
borderBottomWidth
:
"1px"
borderColor
:
"rgb(190, 183, 179)"
borderLeft
:
"1px solid rgb(190, 183, 179)"
borderLeftColor
:
"rgb(190, 183, 179)"
borderLeftStyle
:
"solid"
borderLeftWidth
:
"1px"
borderRadius
:
"2px"
borderRight
:
"1px solid rgb(190, 183, 179)"
borderRightColor
:
"rgb(190, 183, 179)"
borderRightStyle
:
"solid"
borderRightWidth
:
"1px"
borderStyle
:
"solid"
borderTop
:
"1px solid rgb(190, 183, 179)"
borderTopColor
:
"rgb(190, 183, 179)"
borderTopLeftRadius
:
"2px"
borderTopRightRadius
:
"2px"
borderTopStyle
:
"solid"
borderTopWidth
:
"1px"
borderWidth
:
"1px"
boxShadow
:
"none"
display
:
"block"
outline
:
"0px"
outlineWidth
:
"0px"
padding
:
"0.6em"
paddingBottom
:
"0.6em"
paddingLeft
:
"0.6em"
paddingRight
:
"0.6em"
paddingTop
:
"0.6em"
width
:
"100%"

कोड:

function getStyle(className_) {

    var styleSheets = window.document.styleSheets;
    var styleSheetsLength = styleSheets.length;
    for(var i = 0; i < styleSheetsLength; i++){
        var classes = styleSheets[i].rules || styleSheets[i].cssRules;
        if (!classes)
            continue;
        var classesLength = classes.length;
        for (var x = 0; x < classesLength; x++) {
            if (classes[x].selectorText == className_) {
                return _.pickBy(classes[x].style, (v, k) => isNaN(parseInt(k)) && typeof(v) == 'string' && v && v != 'initial' && k != 'cssText' )
            }
        }
    }

}

उपयोग में दर्ज किए बिना कुछ भी? _.pickBy अन्यथा मौजूद नहीं है।
mpag

k & v उल्टे हैं जो आप उनसे पूछ रहे हैं उसके आधार पर .... वापसी होनी चाहिए_.pickBy(classes[x].style, (k,v) => isNaN(parseInt(k)) && typeof(v) == 'string' && v && v != 'initial' && k != 'cssText' )
MPag
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.