2009-08-31 8 views
1

J'ai cette structure DOM:Obtenir texte imbriqué dans les éléments jQuery

<span id="aa"><a id="bb">myname</a> test test test</span> 

Je veux être en mesure de choisir #AA puis le partage #BB loin du texte « test test test » car je dois effectuer certaines opérations de chaîne (remplacer) avec le texte. Comment sélectionner uniquement le texte dans ce cas? Et puis après l'opération de remplacement de chaîne, je veux m'assurer que je peux la fusionner en #bb et en #aa. Laissez-moi savoir la meilleure façon d'aborder. Merci

Répondre

2

Vous pouvez supprimer des éléments DOM temporairement:

$(function() { 
    var $aa = $('#aa'), 
     $bb = $('#bb'); 
    $bb.remove(); // remove bb 
    $aa.text($aa.text().replace(/test/g, 'replaced')); // text manipulations on aa 
    $bb.prependTo($aa); // restore the removed element 
}); 

La fonction remove supprime l'élément du DOM, mais les éléments seront toujours disponibles sur l'objet jQuery, vous permettant d'utiliser davantage.

Vérifiez un exemple here.

+0

C'est parfait !!! MERCI –

1

Si je comprends bien c'est ce que vous voulez faire:

var bb = $('#bb'); 
var foo = bb.clone(); 
bb.remove(); 

// ... do whatever you like with #aa here 

// restore #bb element 
$('#aa').prepend(foo); 

Si vous souhaitez modifier le contenu du #bb il est encore plus facile:

var bb = $('#bb'); 
var text = bb.text(); 

// ... do whatever you like with text here 

// save new text 
bb.text(text); 
0

Vous pouvez accéder à le contenu de bb en utilisant $ ('# bb'), puis obtenir son contenu comme tel;

$bb('#bb').text(); 

Est-ce que cela répond à votre q?

Voir this pour plus d'informations.

Questions connexes