2012-12-05 13 views
17

संभव डुप्लिकेट:
Setting image src attribute not working in Chromeखाली करने के लिए छवि स्रोत कैसे सेट करें?

उपयोगकर्ता पर क्लिक करता है "निकालें" लिंक मैं खाली करने के लिए एक छवि के src विशेषता निर्धारित करने की जरूरत है। जब मैं

$('#img').prop('src', null); 

src का उपयोग कर यह कर खाली नहीं है लेकिन मौजूदा यूआरएल

को अंक अगर मैं

$('#img').removeProp('src'); 

का उपयोग कर src को दूर मुझे इसे वापस आवंटित करने के लिए भविष्य

में कभी नहीं

इसे पूरा करने का सबसे अच्छा तरीका क्या है?

+1

कृपया देखें [इस उत्तर] (http://stackoverflow.com/a/8425853/561731) – Neal

+0

रिक्त स्ट्रिंग वास्तव में एक छवि के लिए एक वैध स्रोत, हो सकता है तकनीकी रूप से यह बोल src को "हटा नहीं रहा" है। '#' के समान, यह वर्तमान यूआरएल और हैश का उपयोग करेगा। असली उदाहरण: http://lcamtuf.coredump.cx/squirrel/ आप वर्तमान यूआरएल को एक अनुरोध भेजना समाप्त कर देंगे। मैं एक और दृष्टिकोण का उपयोग करने का सुझाव दूंगा। –

उत्तर

8

attr() उपयोग करने का प्रयास,

Live Demo

$('#img').attr('src', ''); 

आप आईडी चयनकर्ता है के रूप में। मूल जावास्क्रिप्ट विधि दस्तावेज़ का उपयोग करना .getElementById आपको अधिक प्रदर्शन लाभ प्रदान करेगा। इसके अलावा आपको स्ट्रिंग के बजाय #src के रूप में सेट करने की आवश्यकता हो सकती है।

document.getElementById('img').src = "#"; 
+4

मुझे डर है कि यह काम नहीं करता है। अभी भी खाली मूल्य रखने के बजाय वर्तमान यूआरएल को इंगित करना। – StackOverflower

+0

मैंने अपने उत्तर में लाइव डेमो जोड़ा है, जांचें कि यह – Adil

+0

@Adil काम करता है [यह वास्तविक छवि के साथ काम नहीं करता है] (http://jsfiddle.net/Vnj53/1/) – Neal

6

मैं सिर्फ अंतर्निहित <img> नोड पहुँच सकते हैं और एक रिक्त स्ट्रिंग करने के लिए src का मान सेट चाहते हैं।

$('#img')[ 0 ].src = '#'; 

फिडल: http://jsfiddle.net/P4pRu/


अद्यतन: जब हम सिर्फ एक रिक्त स्ट्रिंग में पारित यह क्रोम की तरह लगता है संतुष्ट नहीं है। फ़ायरफ़ॉक्स अभी भी अपेक्षित व्यवहार दिखाता है (मुझे पूरा यकीन है कि यह क्रोम में कुछ हफ्तों/संस्करण पहले भी काम करता था)।

हालांकि, उदाहरण के लिए # से गुजरना ठीक काम करता है।


अद्यतन 2:

भी imgNode.removeAttribute('src'); अब एक छवि के दृश्य प्रतिनिधित्व अब और क्रोम में निकालता है (दिलचस्प ...)।

+1

मुझे डर है कि यह काम नहीं करता है। अभी भी खाली मूल्य रखने के बजाय वर्तमान यूआरएल को इंगित करना। – StackOverflower

+1

@ TimmyO'Tool: वास्तव में। मुझे लगता है कि विचित्र व्यवहार, "नया" लगता है। हालांकि, अगर आप उदाहरण के लिए '#' में गुजरते हैं तो यह काम करता है। – jAndy

+2

एक खाली स्ट्रिंग वास्तव में किसी छवि के लिए एक मान्य स्रोत हो सकती है, तकनीकी रूप से यह कह रही है कि यह src को "हटा नहीं रहा" है। '#' के समान, यह वर्तमान यूआरएल और हैश का उपयोग करेगा। असली उदाहरण: http://lcamtuf.coredump.cx/squirrel/ आप वर्तमान यूआरएल को एक अनुरोध भेजना समाप्त कर देंगे। –

0

गुण 'src' वास्तव में एक संपत्ति नहीं है, यह एक विशेषता है। संपत्तियों के बारे में सोचें जो चीजों को बूलियन या सूचियों और विशेषताओं के साथ सेट किया जा सकता है जो अधिक गतिशील हैं।

$('#img').attr('src', ''); 

jQuery 1.6 के रूप में, .prop() विधि, एक तरह से स्पष्ट रूप से संपत्ति मूल्यों को पुनः प्राप्त करने प्रदान करता है, जबकि।attr() विशेषताओं को पुन: प्राप्त - http://api.jquery.com/prop/

+0

अपने उत्तर का परीक्षण करें, यह काम नहीं करता है (हालांकि आपके नोट सही हैं)। –

+0

हां, यह करता है। बस jsfiddle में परीक्षण किया गया - http://jsfiddle.net/aAfvx/1/ –

+0

ऐसा लगता है कि यह क्रोम समस्या है, इसे क्रोम में आज़माएं। –

संबंधित मुद्दे