javascript - আমি কিভাবে.css() ফাংশন দিয়ে যুক্ত একটি শৈলী সরাতে পারি?




jquery (12)

আমি জাভাস্ক্রিপ্ট দিয়ে সিএসএস পরিবর্তন করছি এবং আমি ইনপুট মানের উপর ভিত্তি করে যুক্ত স্টাইলিং মুছে ফেলতে চাই।

if(color != '000000') $("body").css("background-color", color); else // remove style ?

কিভাবে আমি এটি করতে পারব? উল্লেখ্য যে উপরের লাইনটি যখন রঙের পিকচার ব্যবহার করে (যেমন মাউস কোনও রঙ চক্রের উপরে চলে তখন) রঙ নির্বাচন করে।

দ্বিতীয় নোট: আমি css("background-color", "none") এটি করতে পারছি না কারণ এটি CSS ফাইলগুলির থেকে ডিফল্ট স্টাইলিং সরিয়ে দেবে। আমি শুধু jQuery দ্বারা যোগ background-color ইনলাইন শৈলী অপসারণ করতে চান।


2018

যে জন্য নেটিভ এপিআই আছে

element.style.removeProperty(propery)

JQuery ব্যবহার করে একটি CSS সম্পত্তি অপসারণ করার বিভিন্ন উপায় রয়েছে:

1. সিএসএস সম্পত্তির ডিফল্ট (প্রাথমিক) মান সেট করা

.css("background-color", "transparent")

এমডিএন এ সিএসএস সম্পত্তির জন্য প্রাথমিক মান দেখুন। এখানে ডিফল্ট মান transparent । আপনি তার পিতামাতার থেকে বৈশিষ্ট্য উত্তরাধিকারী করতে বিভিন্ন CSS বৈশিষ্ট্যের জন্য উত্তরাধিকার ব্যবহার করতে পারেন। CSS3 / CSS4 এ, আপনি initial , revert বা unset ব্যবহার করতে পারেন তবে এই কীওয়ার্ডগুলিতে সীমিত ব্রাউজার সমর্থন থাকতে পারে।

2. সিএসএস সম্পত্তি অপসারণ

একটি খালি স্ট্রিং CSS সম্পত্তি, অর্থাৎ

.css("background-color","")

তবে জাভাস্ক্রিপ্ট। Css () ডকুমেন্টেশনে নির্দিষ্ট হিসাবে সতর্ক থাকুন, এটি সম্পত্তিটি সরিয়ে দেয় তবে এটি ব্যাকগ্রাউন্ড সহ কিছু CSS শর্ট্যান্ডেন্ড বৈশিষ্ট্যের জন্য IE8 এর সাথে সামঞ্জস্যপূর্ণ সমস্যা রয়েছে।

শৈলী সম্পত্তিটির একটি খালি স্ট্রিংয়ের মান নির্ধারণ করা হচ্ছে - উদাহরণস্বরূপ $ ('# mydiv')। CSS ('color', '') - একটি উপাদান থেকে যদি এটি ইতিমধ্যেই সরাসরি প্রয়োগ করা হয়েছে তবে এটি হ'ল এইচটিএমএল স্টাইলে বৈশিষ্ট্য, jQuery এর। css () পদ্ধতির মাধ্যমে, অথবা স্টাইল সম্পত্তিটির সরাসরি DOM ম্যানিপুলেশনের মাধ্যমে। এটি, স্টাইলশীট বা উপাদানটিতে সিএসএস রুল দিয়ে প্রয়োগ করা হয়েছে এমন একটি স্টাইল মুছে ফেলবে না। সতর্কতা: একটি উল্লেখযোগ্য ব্যতিক্রম হল, IE 8 এবং তারপরে, সীমানা বা পটভূমির মতো শর্ট্যান্ডেন্ড সম্পত্তি মুছে ফেলার ফলে স্টাইলশীট বা উপাদানটিতে কী সেট করা আছে তা নির্বিশেষে সেই শৈলীটি সম্পূর্ণরূপে উপাদান থেকে মুছে ফেলা হবে

3. উপাদান সম্পূর্ণ শৈলী অপসারণ

.removeAttr("style")

আমার প্লাগইন ব্যবহার করুন:

$.fn.removeCss=function(all){
        if(all===true){
            $(this).removeAttr('class');
        }
        return $(this).removeAttr('style')
    }

আপনার ক্ষেত্রে, নিম্নলিখিত হিসাবে এটি ব্যবহার করুন:

$(<mySelector>).removeCss();

অথবা

$(<mySelector>).removeCss(false);

যদি আপনি CSS এ সংজ্ঞায়িত সিএসএসটি সরাতে চান তবে:

$(<mySelector>).removeCss(true);

আমি বিশুদ্ধ জাভাস্ক্রিপ্টের পথ জানার জন্য শুধু বিশুদ্ধ জাভাস্ক্রিপ্টের সাথে একটি শৈলী বৈশিষ্ট্য মুছে ফেলার উপায় পেয়েছি

var bodyStyle = document.body.style;
if (bodyStyle.removeAttribute)
    bodyStyle.removeAttribute('background-color');
else        
    bodyStyle.removeProperty('background-color');

এই এক কাজ !!

$elem.attr('style','');

একটি খালি স্ট্রিং সম্পত্তি পরিবর্তন কাজ করতে প্রদর্শিত হয়।

$.css("background-color", "");


এটা চেষ্টা কর:

$('#divID').css({"background":"none"});// remove existing

$('#divID').css({"background":"#bada55"});// add new color here.

ধন্যবাদ


এটি অন্য কিছু সমাধানগুলির চেয়ে আরও জটিল, তবে পরিস্থিতিগুলিতে আরো নমনীয়তা প্রদান করতে পারে:

1) আপনি যে স্টাইলটি প্রয়োগ করতে চান সেটি আলাদা করতে (সমেত) বিচ্ছিন্ন করতে শ্রেণির সংজ্ঞা তৈরি করুন / নির্বাচনমুক্তভাবে অপসারণ করুন। এটি খালি হতে পারে (এবং এই ক্ষেত্রে, সম্ভবত হওয়া উচিত):

.myColor {}

2) এই কোডটি http://jsfiddle.net/kdp5V/167/ উপর ভিত্তি করে ব্যবহার করুন, এই উত্তরটি gilly3 দ্বারা:

function changeCSSRule(styleSelector,property,value) {
    for (var ssIdx = 0; ssIdx < document.styleSheets.length; ssIdx++) {
        var ss = document.styleSheets[ssIdx];
        var rules = ss.cssRules || ss.rules;
        if(rules){
            for (var ruleIdx = 0; ruleIdx < rules.length; ruleIdx++) {
                var rule = rules[ruleIdx];
                if (rule.selectorText == styleSelector) {
                    if(typeof value == 'undefined' || !value){
                        rule.style.removeProperty(property);
                    } else {
                        rule.style.setProperty(property,value);
                    }
                    return; // stops at FIRST occurrence of this styleSelector
                }
            }
        }
    }
}

ব্যবহার উদাহরণ: http://jsfiddle.net/qvkwhtow/

আদেশ সহকারে:

  • ব্যাপকভাবে পরীক্ষা করা হয় না।
  • নতুন মান গুরুত্বপূর্ণ বা অন্যান্য নির্দেশাবলী অন্তর্ভুক্ত করা যাবে না। এই ধরনের ম্যানিপুলেশন মাধ্যমে যে কোন বিদ্যমান নির্দেশাবলী হারিয়ে যাবে।
  • শুধুমাত্র পরিবর্তন প্রথম একটি শৈলী নির্বাচনী খুঁজে পাওয়া যায় নি। সম্পূর্ণ শৈলী যোগ বা অপসারণ না, কিন্তু এই আরো বিস্তারিত কিছু সঙ্গে সম্পন্ন করা যেতে পারে।
  • কোন অবৈধ / অব্যবহারযোগ্য মান উপেক্ষা করা হবে বা ত্রুটি নিক্ষেপ করা হবে।
  • ক্রোমে (অন্তত), অ-স্থানীয় (ক্রস-সাইট হিসাবে) CSS নিয়মগুলি document.styleSheets অবজেক্টের মাধ্যমে প্রকাশ করা হয় না, তাই এটি তাদের উপর কাজ করবে না। এই কোডটির "প্রথম খুঁজে পাওয়া" আচরণটি মনে রাখতে, এটির একটি স্থানীয় ওভাররাইড যুক্ত করতে এবং এটিতে ম্যানিপুলেট করতে হবে।
  • document.styleSheets সাধারণভাবে ম্যানিপুলেশন বিশেষ করে বন্ধুত্বপূর্ণ নয়, এই আক্রমণাত্মক ব্যবহারের জন্য কাজ করার আশা করবেন না।

স্টাইলিং বিচ্ছিন্ন করা এই পদ্ধতিটি কি সিএসএস সম্পর্কে, এমনকি যদি এটি ম্যানিপুলেশন করা নাও হয়। সিএসএস নিয়মগুলি ম্যানিপুলিউটিং করা কি jQuery নয় তা নয়, jQuery DOM উপাদানের ম্যানিপুলেশন করে এবং CSS সিলেক্টরগুলিকে এটি করার জন্য ব্যবহার করে।


কিভাবে ভালো কিছু সম্পর্কে:

var myCss = $(element).attr('css');
myCss = myCss.replace('background-color: '+$(element).css('background-color')+';', '');
if(myCss == '') {
  $(element).removeAttr('css');
} else {
  $(element).attr('css', myCss);
}

কেন আপনি শৈলী আপনি একটি CSS ক্লাস মুছে ফেলতে চান না? এখন আপনি ব্যবহার করতে পারেন: .removeClass() । এটি ব্যবহার করার সম্ভাবনাটিও খোলে: .toggleClass()

(উপস্থিত থাকলে শ্রেণিটি সরিয়ে দিন এবং এটি না থাকলে এটি যুক্ত করুন।)

লেআউট সমস্যাগুলির সাথে ডিল করার সময় একটি শ্রেণী যোগ করা / অপসারণ করা খুব কম বিভ্রান্তিকর / সমস্যা সমাধান (কোনও নির্দিষ্ট শৈলী অদৃশ্য হওয়ার কারনে এটি ব্যবহার করার বিরোধিতা করে।)


সহজ ওয়েব বিকাশ সস্তা। একটি নির্দিষ্ট শৈলী অপসারণ করার সময় আমি খালি স্ট্রিং ব্যবহার করার সুপারিশ

$(element).style.attr = '  ';

গ্রহণযোগ্য উত্তর কাজ করে কিন্তু আমার পরীক্ষাগুলিতে DOM এ একটি খালি style বৈশিষ্ট্য ছেড়ে দেয়। কোন বড় চুক্তি, কিন্তু এটি সব মুছে ফেলা:

removeAttr( 'style' );

এটি আপনি সমস্ত গতিশীল স্টাইলিং মুছে ফেলতে এবং স্টাইলশীট স্টাইলিং ফিরে ফিরে যেতে অনুমান।





css