2008-10-08 2 views
5

Я немного HTML, как так:Зачистка из ссылки в 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

Если есть какие-либо братьев и сестер к изображению, то это будет копировать их. Вы можете использовать $ (this) .children ("img"). Remove() вместо этого. – Sugendran 2008-10-09 02:51:25

+0

@Sugendran: true. – Shog9 2008-10-09 03:32:49

4

Это следует сделать это:

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

В равнине Javascript было бы что-то вроде:

<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> 
Смежные вопросы