Avatar ·

.prop() और .attr() के बीच अंतर: jQuery में प्रॉपर्टी और एट्रीब्यूट अलग-अलग क्यों व्यवहार करते हैं?

सभी को नमस्कार! मैं JavaScript और jQuery में नया हूँ, और मुझे `.prop()` और `.attr()` विधियों के बीच अंतर समझ नहीं आ रहा है। मैंने दस्तावेज़ पढ़ा, लेकिन भ्रम बना हुआ है। यहाँ एक विशिष्ट उदाहरण है जिसने मुझे हैरान कर दिया। मेरे पास एक checkbox है: ```html ``` जब मैं jQuery का उपयोग करके इसकी स्थिति प्राप्त करने का प्रयास करता हूँ, तो मुझे अलग-अलग परिणाम मिलते हैं: ```javascript // पहला तरीका console.log($('#myCheckbox').attr('checked')); // आउटपुट "checked" // दूसरा तरीका console.log($('#myCheckbox').prop('checked')); // आउटपुट true ``` ऐसा क्यों? आखिरकार, HTML में `checked` attribute स्पष्ट रूप से निर्दिष्ट है। मुझे उम्मीद थी कि दोनों विधियाँ समान परिणाम देंगी। मैं और भी अधिक भ्रमित हो गया जब मैंने JavaScript के माध्यम से checkbox की स्थिति को गतिशील रूप से बदलने का प्रयास किया: ```javascript $('#myCheckbox').prop('checked', false); console.log($('#myCheckbox').attr('checked')); // अभी भी "checked"! ``` अर्थात, प्रोग्रामेटिक रूप से टिक हटाने के बाद भी, `.attr()` अभी भी कहता है कि checkbox चेक किया हुआ है।