jquery
  • html
  • 2012-09-28 12 views 8 likes 
    8

    मैं इस तरह एक कोड है, यह एक उदाहरण कोडडोम में जोड़ने से पहले सीएसएस गुण कैसे प्राप्त करें?

    <style> 
        .divStyle 
        { 
         border: 2px solid gray; 
        } 
    </style> 
    <script> 
        $(document).ready(function() { 
         var div = $("<div class='divStyle'></div>"); 
         var border = div.css("border"); 
        }); 
    </script> 
    

    सीमा रिटर्न रिक्त स्ट्रिंग है। सीमा मूल्य कैसे प्राप्त करें?

    उत्तर

    3

    आप इसे DOM करने के लिए इसे डालने के बिना किया प्राप्त नहीं कर सकते, लेकिन यहाँ एक चाल मैं के बारे में सोच सकता है और यह है कि इसे छिपे हुए डोम में डालें, सीएसएस संपत्ति प्राप्त करें और इसे हटा दें।

    $(document).ready(function() { 
        var div = $("<div class='divStyle'></div>").css('display','none').appendTo('body'); 
        var border = div.css('border'); 
        div.remove(); 
        alert(border); 
    }); 
    

    DEMO

    +0

    इसके बारे में क्या। उसके माता-पिता हैं, माता-पिता को डोम में नहीं जोड़ा गया है? –

    +0

    सुनिश्चित नहीं है कि आप क्या प्रयास कर रहे हैं लेकिन मुझे लगता है कि आप जानते हैं कि इसका क्या कारण है क्योंकि आप इसे अपने उदाहरण में बना रहे हैं, वैसे भी, यह केवल एक विचार है। –

    +0

    धन्यवाद मुझे यह मिला, बस उस div का एक क्लोन लें और उसे शरीर में जोड़ दें। –

    1

    आप कक्षा के साथ एक छिपी हुई इनपुट डाल सकते हैं, सीएसएस गुण प्राप्त कर सकते हैं और उनका उपयोग कर सकते हैं।

    <input id="getPadding" class="inp" type="text" style="display:none" /> 
    

    तब के बाद तत्व .. जोड़ दिया जाता है तुम बस तत्वों माता पिता चौड़ाई मिलता है और फिर उस चौड़ाई शून्य से गद्दी की राशि के लिए इनपुट सेट कर सकते हैं जैसा तो

    $('td input').width($(this).parent().width() - [$('#getPadding').css('padding-left') + $('#getPadding').css('padding-right')]) 
    

    वैकल्पिक रूप से वहाँ एक सीएसएस है एकमात्र समाधान है, लेकिन यह IE7 में काम नहीं करता है और नीचे

    $('td input').width($(this).parent().width() - [$('#getPadding').css('padding-left') + $('#getPadding').css('padding-right')]) 
    Alternatively there is a css only solution but it does not work in IE7 and below 
    
    td input { 
        margin: 0px; 
        width: 100%; 
        height: 100%; 
        border: 0px; 
        display: block; 
        padding: 2px 5px; 
        -moz-box-sizing: border-box; 
        -ms-box-sizing: border-box; 
        -webkit-box-sizing: border-box; 
        box-sizing: border-box; 
    } 
    
    1

    अपने तत्व को अदृश्य प्रस्तुत करें। कुछ ऐसा:

    var div = $("<div class='divStyle'></div>"); // Create 
        $(body).append(div); // Render 
        $(div).hide(); // Hide immediately 
    var border = $(div).css("border"); // Get value 
        $(div).remove(); // Destroy 
    
    संबंधित मुद्दे