2008-10-08 15 views
5

में एचटीएमएल का एक सा तो जैसे स्ट्रिपिंग मैं:बाहर एक लिंक jQuery

<a href="#somthing" id="a1"><img src="something" /></a> 
<a href="#somthing" id="a2"><img src="something" /></a> 

मैं लिंक तो मैं बस छवि टैग के एक जोड़े के साथ छोड़ दिया हूँ बंद पट्टी की जरूरत है। JQuery के साथ ऐसा करने का सबसे प्रभावी तरीका क्या होगा?

उत्तर

8
$("a > img").parent() // match all <a><img></a>, select <a> parents 
    .each(function() // for each link 
    { 
     $(this).replaceWith(    // replace the <a> 
     $(this).children().remove()); // with its detached children. 
    }); 
+0

। आप $ (यह) .children ("img") का उपयोग करना चाह सकते हैं। इसके बजाय हटाएं()। – Sugendran

+0

@ सुगेंद्रन: सच। – Shog9

+0

कोई भाई बहन होने के लिए ऐसा नहीं होता है। लेकिन यह एक अच्छा मुद्दा है। – defrex

4

यह करना चाहिए:

$('a[id^=a]').each(function() { $(this).replaceWith($(this).html()); }); 
1

सादे जावास्क्रिप्ट यह की तरह कुछ होगा में: छवि के लिए किसी भी भाई बहन देखते हैं तो यह उन्हें साथ ही कॉपी करेंगे

<script type="text/javascript"> 
window.onload = function(){ 
    var l = document.getElementsByTagName("a"); 
    for(i=0, im=l.length; im>i; i++){ 
    if(l[i].firstChild.tagName == "img"){ 
     l[i].parentNode.replaceChild(l[i].firstChild,l[i]); 
    } 
    } 
} 
</script> 
+0

jQuery का उपयोग आज आपके प्रस्ताव जैसे कोड की चोटी को सुंदर ढंग से बदलने के लिए किया जा रहा है। फिर भी धन्यवाद! –

+0

गंभीरता से, यह स्निपेट सिर्फ jQuery की लालित्य दिखाता है। शोग 9 द्वारा यह कोड और कोड बिल्कुल वही है, लेकिन पढ़ने के लिए एक छोटा और इतना साफ है। हालांकि, यह कोड पूरी तरह से नौकरी भी करेगा! –

+0

सुंदरता - हाँ यह अपेक्षाकृत साफ दिखता है, लेकिन jQuery के अंदर यह बहुत बड़ा है, इसलिए यदि आपको एक विशाल पुस्तकालय संलग्न करने के अन्य कारण नहीं हैं, तो इसका उपयोग करें। लेकिन निश्चित रूप से, defrex ने एक jQuery-चीज़ के लिए कहा और यह नहीं है! -) – roenving

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