কোনও উপাদানটির সিএসএস display == blockবা noneজাভাস্ক্রিপ্ট ব্যবহার করছে কিনা তা পরীক্ষা করা সম্ভব ?
উত্তর:
যেমন sdleihssirhc নীচে বলেছে, যদি উপাদানটি displayউত্তরাধিকার সূত্রে প্রাপ্ত হয় বা কোনও সিএসএস বিধি দ্বারা নির্দিষ্ট করা হচ্ছে, আপনাকে তার গণিত শৈলীটি পেতে হবে :
return window.getComputedStyle(element, null).display;
উপাদানগুলির একটি styleসম্পত্তি রয়েছে যা শৈলতাকে ইনলাইন বা জাভাস্ক্রিপ্ট সহ ঘোষিত হলে আপনি কী চান তা আপনাকে জানিয়ে দেবে:
console.log(document.getElementById('someIDThatExists').style.display);
আপনি একটি স্ট্রিং মান দিতে হবে।
currentStyle? এটি কখনও শুনেনি, পরীক্ষা করেও document.body.currentStyleকিছুই পেয়েছে (অবাক হয় নি)
যদি স্টাইলটি ইনলাইন বা জাভাস্ক্রিপ্ট সহ ঘোষিত হয় তবে আপনি কেবলমাত্র styleবস্তুটিতে আসতে পারেন:
return element.style.display === 'block';
অন্যথায়, আপনাকে গণনা করা স্টাইলটি পেতে হবে এবং ব্রাউজারের অসঙ্গতি রয়েছে। আইই একটি সাধারণ currentStyleঅবজেক্ট ব্যবহার করে তবে অন্য প্রত্যেকে একটি পদ্ধতি ব্যবহার করে:
return element.currentStyle ? element.currentStyle.display :
getComputedStyle(element, null).display;
nullFirefox সংস্করণ 3 এবং নিচে প্রয়োজন ছিল।
===এবং !==অপারেটরগুলি"।
===না করে ব্যবহার করতে সমস্যা ==নেই, তবে সমানভাবে কোনও লাভ নেই। উভয় অপারেন্ডগুলি স্ট্রিং হওয়ার গ্যারান্টিযুক্ত, সুতরাং উভয় অপারেটর হুবহু একই পদক্ষেপগুলি সম্পাদন করে।
JQuery এর জন্য, আপনি কি এরকম বোঝাতে চান?
$('#object').css('display');
আপনি এটি এটি পরীক্ষা করতে পারেন:
if($('#object').css('display') === 'block')
{
//do something
}
else
{
//something else
}
এই উত্তরটি আপনি যা চান ঠিক তা নয় তবে এটি কিছু ক্ষেত্রে কার্যকর হতে পারে। যদি আপনি জানেন যে উপাদানটির প্রদর্শিত হওয়ার সময় কিছু মাত্রা থাকে তবে আপনি এটি ব্যবহার করতে পারেন:
var hasDisplayNone = (element.offsetHeight === 0 && element.offsetWidth === 0);
সম্পাদনা: সিএসএস displayসম্পত্তি সরাসরি যাচাই করার চেয়ে কেন এটি ভাল হতে পারে ? কারণ আপনার সমস্ত অভিভাবক উপাদানগুলি পরীক্ষা করার দরকার নেই। যদি কিছু মূল উপাদান থাকে তবে display: noneএর বাচ্চাগুলি খুব লুকানো রয়েছে তবে এখনও রয়েছে element.style.display !== 'none'।
বেসিক জাভাস্ক্রিপ্ট:
if (document.getElementById("elementId").style.display == 'block') {
alert('this Element is block');
}
এটি সরল জাভাস্ক্রিপ্টের সাথে দৃশ্যমান কিনা তা জানতে, প্রদর্শন সম্পত্তিটি 'কোনওটিই নয়' কিনা তা পরীক্ষা করুন ('ব্লক' এর জন্য পরীক্ষা করবেন না, এটি ফাঁকা বা 'ইনলাইন' হতে পারে এবং এখনও দৃশ্যমান হতে পারে):
var isVisible = (elt.style.display != "none");
আপনি jQuery ব্যবহার করে থাকেন, আপনি পরিবর্তে এটি ব্যবহার করতে পারেন:
var isVisible = $elt.is(":visible");
আপনি উদাহরণস্বরূপ jQuery দিয়ে এটি পরীক্ষা করতে পারেন:
$("#elementID").css('display');
এটি এই উপাদানটির প্রদর্শন সম্পত্তি সম্পর্কিত তথ্য সহ স্ট্রিংটি ফিরিয়ে দেবে।