2011-10-18 9 views
0

je l'élément suivant dans ma page:Comment sélectionner un élément par son contenu?

<u>abc123</u> 

Comment sélectionner cet élément et le changement de la abc123 'son contenu à autre chose?

Ce que j'essaie en fait d'ajouter un iframe entre <u></u>. Je sais que c'est un peu idiot, mais j'ai une exigence spéciale pour ça.

Une deuxième question: est-il possible de substituer le tout (<u>abc123</u>) pour le iframe, ou la balise iframe doit aller entre le <u></u>?

Merci!

Répondre

2

Pour filtrer par contenu (par exemple):

$("u").filter(function(){ 
    return $(this).text() == "abc123"; 
}).html("<iframe>"); 

Pour exécuter directement du code:

$("u").each(function(){ 
    var $this = $(this); 
    if($this.text() == "abc123"){ 
     $this.html("<iframe>"); 
    } 
}) 

Utilisation .replaceWith() au lieu de .html() si vous voulez remplacer également les balises (<u></u>). La méthode .html() écrase le contenu actuel d'un élément. Si vous souhaitez ajouter de nouvelles informations sans effacer les données précédentes, utilisez .append().

+0

excellente solution, merci;) j'appris quelque chose – Genjuro

0

Vous pouvez remplacer l'élément avec un iframe cette façon (ce qui est JavaScript directement, mais vous pouvez le faire en jQuery aussi):

<u id="test"></u> 

var e = document.getElementById('test'); 
var iFrame = [...]; 

e.parentNode.insertBefore(iFrame, e); 
e.parentNode.removeChild(e); 

Merci

0

vous pouvez ajouter du contenu à votre aide de la Fonction Text().

$("u").text(yourText); 

pour sélectionner l'élément par son contenu

$("u").each(function(i) { 
    if ($(this).text()=="abc123"){ 
    //do what you want 
} 
    }); 
0

essayez ceci:

JS

$("u").html('<iframe src="http://www.google.com" width="300" height="300">Alternative context</iframe>'); 
Questions connexes