16 votes

Envelopper le texte dans l'élément

J'ai besoin d'envelopper du texte dans un div avec un span.

<div class="item">
   <span class="count"></span>
   Text that needs to be wrapped.
</div>

<div class="item">
   <span class="count"></span>
   Text that needs to be wrapped.
</div>

<div class="item">
   <span class="count"></span>
   Text that needs to be wrapped.
</div>

J'ai essayé ceci mais ça n'a pas vraiment marché...

$('.item').text().wrap('<span class="new" />');

25voto

ᾠῗᵲᄐᶌ Points 19795

Vous pouvez le faire en utilisant contenu() y .eq()

$('.item').each(function(i, v) {
    $(v).contents().eq(2).wrap('<span class="new"/>')
});

http://jsfiddle.net/qUUbW/

12voto

Musa Points 50000

Et si

$('.item').contents().filter(function(){
    return this.nodeType == 3 && $.trim(this.nodeValue).length;
}).wrap('<span class="new" />');

http://jsfiddle.net/mowglisanu/x5eFp/3/

4voto

spliter Points 3292

DIV unique :

var txt = $('.count')[0].nextSibling;
$(txt).wrap('<span class="new" />');

JSfiddle

DIVs multiples :

var markers = document.querySelectorAll('.count'),
    l = markers.length,
    i, txt;

for (i = l - 1; i >= 0; i--) {
    txt = markers[i].nextSibling;
    $(txt).wrap('<span class="new" />');
}

JSFiddle

3voto

shakee93 Points 2192

Si vous devez envelopper du contenu textuel à l'intérieur d'un élément, utilisez wrapInner

https://api.jquery.com/wrapInner/

exemple html

<div class="item">contents inside needs to be wrapped</div>`

// jQuery
$('.item').wrapInner('<span></span>')

2voto

Nelson Points 19623

Mon avis sur la question :

$('.item').contents().each(function() {
    if (this.nodeType == 3 && $.trim(this.nodeValue) != '') {
       $(this).wrap('<span class="textwrapped"></span>');
    }
});

En $.trim est nécessaire car les tabulations utilisées pour indenter le code html sont également des nœuds de texte que nous devons filtrer (par exemple, comme la tabulation juste avant l'élément <span class="count"> )

Voir le travail Démo

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X