2010-07-27 6 views
0

Je dois supprimer ou masquer la balise Img ou son parent lorsque Img a src = "".Comment trouver des balises Img ayant src null. et la supprimer

J'ai un script, mais il ne fonctionne pas ..

window.onload=function(){ 
    var imgs = document.getElementsByTagName("img"); 
    for(var i = 0; i < imgs.length; i++) 
    { 
     var img = imgs[i]; 
     if(img.src==""){ 
     img.parentNode.removeChild(img); 
     } 
    } 
} 

Son ne trouve pas le img ayant scr = "". tandis que dans IE et Safari est montre le signe de la croix (rouge).

Répondre

1

Vous pouvez utilisateur jQuery pour que :)

$(document).ready(function(){ 
    $("img").each(function(){ 
     if($(this).attr("src") == null || $(this).attr("src") == '') 
     { 
      $(this).remove(); 
      } 
    }); 
}); 

La solution de contournement est défini le style du conteneur div où il y a les nouvelles comme display: none; alors une fois que vous avez exécuté chaque boucle, vous définissez la div comme visible.

ici vous avez un mockup de code ..

//html (iframe content) 
<div id="newsContainer" style="display:none;"> 
</div> 

$(document).ready(function(){ 
    $("img").each(function(){ 
     if($(this).attr("src") == null || $(this).attr("src") == '') 
     { 
      $(this).remove(); 
      } 
    }); 
    $("#newsContainer").show(); 
}); 
+1

Merci pour la réponse .. Je m implémenter ce – Anil

+0

pas de problème .. cocher comme réponse :) –

+0

Hey David .. merci pour la réponse. J'ai travaillé pour moi. Je vais marquer ceci comme réponse. Mais j'ai besoin de réponse plus spécifique. J'ai un .asp et j'ai iframe dans ceci et ce iframe est peuplé avec des nouvelles et des images. Iframe utilise une page html. J'ai mis ce code sur la page html. mais la scène est d'abord IE montre le signe de croix rouge et après que toute la page a été déposée, il supprime la balise img. J'ai appliqué le script my sur les événements onload , mais cela n'a pas fonctionné. toute aide à ce sujet. – Anil

1

Vous pouvez utiliser jquery pour ajouter des fonctionnalités qui rendront cette compatibilité inter-navigateurs sans falsification. Votre code finirait par ressembler à

$(document).ready(function() { 
    $("img[src='']").remove(); 
}); 
+1

Pas celui qui downvoted, mais alors que jQuery peut être javascript, javascript jQuery isnt. –

+0

Tout le monde utilise jQuery pour tout ces jours. Ce n'est pas que je n'aime pas jQuery moi-même, mais cela indique que quelque chose ne va vraiment pas avec la façon dont JS est implémenté (compatibilité entre navigateurs !?) et le jeu de fonctionnalités de JS côté client. Trop de tâches simples nécessitent une bibliothèque de 24 000 caractères (estimation). Pousser toutes ces fonctionnalités dans JS côté client serait autant de travail que toute l'optimisation de l'interpréteur JS qu'ils font maintenant, mais entraînerait moins de trafic ... – MvanGeest

+0

Merci pour la réponse .. je dois le mettre sur l'événement prêt .. mi right – Anil

Questions connexes