2011-10-12 13 views
6

Belirli bir normal ifadeyle eşleşen tüm metin parçaları (yani, '< span>First name: < /span>< br/>< b>John< /b>''First name: John' eşleşecek şekilde etiketleri yok saymam gerekiyor) HTML öğesinde bulmam gerekiyor ve bu bulunan parçaları vurgulayarak yeni elemanlarla dekorasyon yapmak ve özel css stillerini uygulamak) ve bu parçaları bulmak mümkün, örneğin Bunları görüntünün içine kaydır. İşlevsellik, Skype tarayıcı eklentisinin sayfada bulunan telefon numaralarıyla ne yaptığına benziyor.Düzenli ifadeyle eşleşen dizeyi içeren DOM öğesini bulun

+7

:

İşte
$("span:contains('First name:') ~ b:contains('John')").css('color','red'); 

çalışan bir örnektir Çalışmıyor kodunuz var mı, yoksa bu bir "kod kodu" sorusu mu? Ne denedin? – CanSpice

+0

Yaklaşım bulmalıyım, kod yazabilirim. Eğer zaten çözülmüş ve kod mevcut ise - daha da iyi. –

+0

jQuery şununla şunları yapabilir: includes() selector. Belki de mantığı, alt dize arama yerine regexp arama kullanmak için yeniden tanımlanabilir. –

cevap

-1

Böyle bir şey denediniz mi?

document.body.innerHTML.replace(/<\/?[^>]+>/g, '')

+1

Bu, dinamik olarak eklenen her dinleyiciyi yalnızca yok etmekle kalmayacak, önemsiz içerik barındıran herhangi bir sayfa için farklı tarayıcılarda öğeleri, nitelikleri ve özellikleri farklı şekillerde bozacaktır. – RobG

+0

Arama sonuçlarımın DOM içinde nerede olduğu hakkında bilgi almam gerekiyor ya da ihtiyacım olanı değil document.body.innerText.match() - yapabilirim. –

2

Ya yinelemeli elemanların textContent (uygun şekilde) veya innerText mülkiyet bakarak DOM yürüyebilir veya getElementsByTagName tarafından döndürülen koleksiyonu üzerinde döngü kullanabilirsiniz. Her iki durumda da, metni ve ana öğeyi belirledikten sonra, nasıl değiştirileceğini öğrenmeniz gerekir.

Dize bir veya daha fazla öğe üzerine bölünmüşse, belge yapısında gereksinimleriniz nelerdir?

+0

Düğüm merkezli bir yaklaşımın düğüm merkezli bir yöntemle daha fazla taşınabilirlik sağlayacağını iddia ediyorum. Ayrıca, bu çoğu insanın sıkıntı yaşadığı DOM'ın yönü :). –

+0

Evet, ancak OP birden çok öğeye bölünmüş olsa bile dizeyi istiyor, bu nedenle yalnızca metin düğümlerine bakmak işi yapmaz. Bölünmüş dizelerle nasıl uğraşmak istediğini bilmiyorum, ama en azından yukarıdaki yöntem tüm dizeye sahip en yakın atası bulacaktır. – RobG

2

Sen First name: içeren bir <span> etiketinden sonra gelen John içeren <b> etiketlerini almanın jQuery selectors kullanın ve sonra örneğin bir stil uygulamak olabilir: http://jsfiddle.net/XzwNj/

+0

Sadece bir örnek, özel bir durum değildi –

İlgili konular