জকোয়ারি: উপাদানটিতে কিছু সিএসএস শ্রেণি / শৈলী রয়েছে কিনা তা কীভাবে পরীক্ষা করবেন


86

আমার একটি ডিভ আছে:

<div class="test" id="someElement" style="position: absolute"></div>

নির্দিষ্ট উপাদান কিনা তা পরীক্ষা করার কোনও উপায় আছে:

$("#someElement") 

একটি নির্দিষ্ট বর্গ আছে (আমার ক্ষেত্রে, "পরীক্ষা")।

পর্যায়ক্রমে, en উপাদানগুলির একটি নির্দিষ্ট স্টাইল রয়েছে কিনা তা পরীক্ষা করার কোনও উপায় আছে? এই উদাহরণে, আমি জানতে চাই যে উপাদানটি " position: absolute" রয়েছে কিনা ।

আপনাকে অনেক ধন্যবাদ!


14
এটি প্রশ্ন বা উত্তরটি ভুল কিনা তা নিশ্চিত নয়, তবে প্রশ্নের স্টাইল = "পরীক্ষা" রয়েছে, এবং উত্তরটি ক্লাস = "পরীক্ষা"
-র

4
আমার অনুমান, প্রশ্নটি ভুল, কারণ তিনি ভুল উত্তরটি সঠিক হিসাবে চিহ্নিত করেছেন; তবে নির্বিশেষে, ভোটগুলি দেখার পরে, আমি মনে করি বেশিরভাগ লোকেরা এখানে এই ভুল প্রশ্নের সঠিক উত্তর খুঁজছেন ... আমি এখানে অন্তত এখানে আছি কেন।
BrainSlugs83

উত্তর:



281

সিএসএস স্টাইলগুলি মূল "ট্যাগ" নয়, মূল-মান জুড়ি। ডিফল্টরূপে, প্রতিটি উপাদানকে সিএসএস শৈলীর একটি সম্পূর্ণ সেট নির্ধারিত থাকে, তাদের বেশিরভাগই স্পষ্টতই ব্রাউজারের ডিফল্ট ব্যবহার করে থাকে এবং তাদের কয়েকটি স্পষ্টভাবে সিএসএস স্টাইলশিটে পুনরায় সংজ্ঞায়িত করা হয়।

কোনও উপাদানটির একটি নির্দিষ্ট সিএসএস এন্ট্রিতে নির্ধারিত মান পেতে এবং এটির তুলনা করুন:

if ($('#yourElement').css('position') == 'absolute')
{
   // true
}

আপনি যদি শৈলীর নতুন সংজ্ঞা দেন না, আপনি সেই নির্দিষ্ট উপাদানটির জন্য ব্রাউজারটি ডিফল্ট পাবেন।


4
কোনও নির্বাচকের সাথে এটি করার কোনও উপায় নেই?
BrainSlugs83

এটির সাহায্যে আপনি দেখতে পারবেন আসল সম্পত্তি কী, আমার জানা দরকার যা এই সম্পত্তিটি সরাসরি সেট করা হচ্ছে বা এটি CSS স্টাইল / ব্রাউজার থেকে উত্তরাধিকার সূত্রে প্রাপ্ত ... এটি কি সম্ভব?
ante.sabo

পৃষ্ঠা লোডের পরে যদি কোনও বস্তুর DOM / CSS মান পরিবর্তন হয় তবে দৃশ্যের জন্য কাজ করছে বলে মনে হচ্ছে না। এটি কোনও ধারণা কীভাবে এটি ডম লোড হওয়ার পরে CSS পরিবর্তনগুলি দেখতে পাবেন?
কলারবোন

@ কলারবোন আপনি ডকুমেন্টটি লোড হয়ে গেলে একবার বা সেকেন্ডের জন্য কলটি বিলম্ব করতে সর্বদা সেটটাইমআউট () এবং ক্লিয়ারটাইমআউট () ব্যবহার করতে পারেন।
প্রোবি


4

অথবা, যদি আপনার সেই সম্পত্তিটির উপাদানটি অ্যাক্সেস করার প্রয়োজন হয় এবং এটি কোনও আইডি ব্যবহার না করে তবে আপনি এই পথে যেতে পারেন:

$("img").each(function () {
        if ($(this).css("float") == "left") { $(this).addClass("left"); }
        if ($(this).css("float") == "right") { $(this).addClass("right"); }
    })

1

আমি একটি সমাধান পেয়েছি:

$("#someElement")[0].className.match("test")

তবে একরকম আমি বিশ্বাস করি যে এর চেয়ে আরও ভাল উপায় আছে!


1

প্রশ্ন দুটি ভিন্ন জিনিস জিজ্ঞাসা করছে:

  1. একটি উপাদান নির্দিষ্ট বর্গ আছে
  2. একটি উপাদান নির্দিষ্ট স্টাইল আছে।

দ্বিতীয় প্রশ্নের ইতিমধ্যে উত্তর দেওয়া হয়েছে। প্রথমটির জন্য, আমি এটি এইভাবে করব:

if($("#someElement").is(".test")){
    // Has class test assigned, eventually combined with other classes
}
else{
    // Does not have it
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.