2010-06-22 22 views
10

ile birlikte bulur. Tüm DOM'ları taramak için en iyi yol ne olmalı, metin içeren ve bir span sınıfına sarmak için herhangi bir öğe bulun. ThanxJquery, tüm öğeleri

+0

Ben ne belirtmek gerek:

$('body *').contents().filter(function() { return (this.nodeType == 3) && this.nodeValue.match(/\S/); }).wrap("<span />") 

sadece boşluk içerenler dahil olmak üzere, tüm metin düğümleri kaydırmak için: –

cevap

14

sadece boşluk dışında bir şey içeren tüm metin düğümlerini sarabilmek için 'metin içeren herhangi bir öğe' ile demek istiyorsunuz. Beyaz alan dışındaki metinleri içeren, ancak çocuk öğelerinde olmayan öğeleri mi kastediyorsunuz?
+0

Bu kodu şu adresteki şuraya bakın: http://jsbin.com/oquhu3/3 (* boşluklu bir *) –

+0

Thanx, işe yarıyor! Bir sınıf eklemeye çalıştım ama işe yaramadı. $ (işlev() { $ ('gövde *'). Content(). Filter (işlev() { return (this.nodeType == 3) && this.nodeValue.length> 0; }). AddClass ("someclass"); }); Neden olursa olsun? Thanx tekrar. – Mircea

+0

Bir metin düğümüne bir sınıf ekleyemezsiniz. Sınıfı olan bir span ile sarmayı deneyin: $ ('body *'). Content(). Filter (function() { return (this.nodeType == 3) && this.nodeValue.length> 0; }) .wrap ("") –

1

Sen .each tüm elememnts üzerinde yineleme için kullanabilirsiniz:

$('*').each(function(){ 
    if($(this).text()) 
    { 
     $(this).wrapInner('<span />'); 
    } 
}) 

ben kod parçası test etmedi ama oldukça basit. Öğrenmeniz gereken tek şey .each, wrapInner ve * seçicisidir. jQuery docs burada oldukça yararlıdır.

$('body *').contents().filter(function() { 
    return (this.nodeType == 3) && this.nodeValue.length > 0; 
}).wrap("<span />") 
+0

Bazı daha fazla iş kaldı gibi görünüyor: http://jsbin.com/oquhu3 –

+1

$ (document). Try(); kodunuza: $ (document) .ready (function() { $ ('*'). her (işlev {} ( if ($ (this) .text()) { $ (this) .wrapInner (''); ' }) )) }) – dzida

+2

Bunun gerçek metinlere sahip olup olmadıklarına bakılmaksızın, tüm HTML öğelerine sınıf ekleyeceğini düşünüyorum. – Mircea

İlgili konular