जक्वरी: यह जांचने के लिए कि तत्व में कुछ सीएसएस क्लास / स्टाइल है या नहीं


85

मेरे पास एक div है:

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

क्या किसी निश्चित तत्व की जाँच करने का कोई तरीका है:

$("#someElement") 

एक विशेष वर्ग है (मेरे मामले में, "परीक्षण")।

वैकल्पिक रूप से, क्या यह जांचने का एक तरीका है कि एन तत्व की एक निश्चित शैली है? इस उदाहरण में, मैं जानना चाहूंगा कि क्या तत्व में " position: absolute" है।

आपका बहुत बहुत धन्यवाद!


14
यह सुनिश्चित नहीं है कि यह प्रश्न या उत्तर गलत है, लेकिन प्रश्न में शैली = "परीक्षण" है, और उत्तर कक्षा = "परीक्षण" के लिए दिखता है
wheresrhys

1
मेरा अनुमान है, प्रश्न गलत है, क्योंकि उसने गलत उत्तर को सही माना है; लेकिन परवाह किए बिना, वोटों को देखने के बाद, मुझे लगता है कि ज्यादातर लोग इस गलत सवाल के सही जवाब की तलाश में यहां ठोकर खाए हैं ... एर, अगर यह कोई मतलब है ... DrJokepu से जवाब, मेरा मतलब है। इसलिए मैं कम से कम यहाँ हूँ।
BrainSlugs83

जवाबों:



281

सीएसएस शैलियाँ कुंजी-मूल्य जोड़े हैं, न कि केवल "टैग"। डिफ़ॉल्ट रूप से, प्रत्येक तत्व में सीएसएस शैलियों का एक पूरा सेट दिया गया है, उनमें से ज्यादातर ब्राउज़र की चूक का उपयोग कर रहे हैं और उनमें से कुछ को सीएसएस स्टाइलशीट में स्पष्ट रूप से पुनर्परिभाषित किया गया है।

किसी तत्व की विशेष CSS प्रविष्टि के लिए दिया गया मान प्राप्त करने और उसकी तुलना करने के लिए:

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

यदि आपने शैली को फिर से परिभाषित नहीं किया है, तो आपको उस विशेष तत्व के लिए ब्राउज़र डिफ़ॉल्ट मिलेगा।


3
चयनकर्ता के साथ ऐसा करने का कोई तरीका नहीं है?
BrainSlugs83

इसके साथ आप देख सकते हैं कि वास्तविक संपत्ति क्या है, मुझे यह जानने की आवश्यकता है कि क्या यह संपत्ति सीधे सेट की जा रही है या क्या यह सीएसएस शैली / ब्राउज़र से विरासत में मिली है ... क्या यह संभव है?
ante.sabo

परिदृश्य के लिए काम करने के लिए प्रतीत नहीं होता है अगर पृष्ठ भार के बाद डोम परिवर्तन / सीएसएस मूल्य में परिवर्तन होता है। कोई भी विचार कैसे डोम लोड के बाद सीएसएस परिवर्तन देखने के लिए इसे पाने के लिए?
कॉलरबोन

@ कॉलरबोन आप हमेशा दस्तावेज़ को लोड करने के बाद दूसरी बार कॉल को विलंबित करने के लिए सेटटाइमआउट () और क्लियरटाइमआउट () का उपयोग कर सकते हैं।
प्रोबाई


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
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.