Ho bisogno di trovare sulla pagina HTML tutti i frammenti di testo che corrispondono all'espressione regolare specifica (ovvero, devo ignorare i tag in modo che '< span>First name: < /span>< br/>< b>John< /b>'
corrispondano a 'First name: John'
) e di evidenziare questi frammenti trovati (di decorare con nuovi elementi e applicare stili di css personalizzati) ed essere in grado di localizzare questi frammenti, ad es essere in grado di scorrere questi in vista. La funzionalità è simile a ciò che il plug-in del browser Skype sta facendo con i numeri di telefono trovati sulla pagina.Trova elemento DOM che contiene stringhe che corrispondono all'espressione regolare
risposta
Hai provato qualcosa del genere?
document.body.innerHTML.replace(/<\/?[^>]+>/g, '')
Ciò non solo distruggerà ogni listener che è stato aggiunto dinamicamente, ma probabilmente rovinerà elementi, attributi e proprietà in diversi modi in diversi browser per qualsiasi pagina con contenuti non banali. – RobG
Ho bisogno di mantenere informazioni su dove nel DOM si trovano i risultati della mia ricerca, o posso document.body.innerText.match() - non è quello che mi serve. –
È possibile sia in modo ricorsivo camminare lungo il DOM guardando il textContent o innerText proprietà (a seconda dei casi) di elementi, oppure è possibile utilizzare un loop all'interno di raccolta restituita da getElementsByTagName. In entrambi i casi, una volta identificato il testo e l'elemento genitore, è necessario capire come sostituirlo.
Quali sono i requisiti per la struttura del documento nella sostituzione se la stringa è suddivisa su uno o più elementi?
Direi che l'utilizzo di un approccio incentrato sul nodo rispetto a uno incentrato su stringhe porterà a una maggiore portabilità. Inoltre, questo è l'aspetto del DOM che la maggior parte delle persone ha problemi con :). –
Sì, ma l'OP vuole la stringa anche se è divisa su più di un elemento, quindi solo guardare i nodi di testo non farà il lavoro. Non so come intende trattare con le stringhe divise, ma almeno il metodo sopra troverà l'antenato più vicino che ha l'intera stringa. – RobG
Si potrebbe utilizzare jQuery selectors per ottenere i <b>
tag contenenti John
che vengono dopo un tag <span>
che contiene First name:
, e poi per esempio applicare uno stile:
$("span:contains('First name:') ~ b:contains('John')").css('color','red');
Ecco un esempio di esecuzione: http://jsfiddle.net/XzwNj/
Era solo un esempio, non caso specifico –
- 1. Codice C# per generare stringhe che corrispondono a un'espressione regolare
- 2. numeri che corrispondono all'espressione regolare con punto
- 3. Trova elemento DOM per ID quando l'ID contiene parentesi quadre?
- 4. Trova javascript che sta modificando l'elemento DOM
- 5. Trova elemento in List <> che contiene un valore
- 6. Elenco di tutte le parole che corrispondono all'espressione regolare
- 7. sostituire tutte le occorrenze che corrispondono alla espressione regolare
- 8. Verificare se un elenco ha una o più stringhe che corrispondono a un'espressione regolare
- 9. Che cos'è un elemento "fuori DOM"?
- 10. corrispondono a un'espressione regolare con lookahead opzionale
- 11. Un elemento DOM può avere un ID che contiene uno spazio?
- 12. Opzione che evidenzia tutte le stringhe che corrispondono alla selezione effettiva in PhpStorm?
- 13. In che modo questa espressione regolare trova i numeri primi?
- 14. Espressione regolare Javascript che corrisponde a due stringhe
- 15. Come posso abbinare le stringhe che non corrispondono ad un particolare modello in Perl?
- 16. espressione regolare per sostituire più linee che corrispondono a un modello
- 17. Come verificare che un elemento esista nel DOM usando jQuery?
- 18. Trova documenti con matrice che non contiene un valore specifico
- 19. javascript: trova stringhe in dom e lo enfatizza
- 20. Rimuovere stringhe da un elenco che contiene numeri in python
- 21. Confronto tra stringhe, che contiene lo spazio con == in PHP
- 22. Python - Lista Splitting che contiene le stringhe e interi
- 23. XPath per trovare elemento antenato più vicino che contiene un elemento che ha un attributo con un certo valore
- 24. Oracle SQL che ottiene l'ennesimo elemento espressione regolare
- 25. trovare un elemento da XPath che contiene il testo
- 26. Creare un elenco che contiene T come elemento singolo
- 27. jQuery selector per un elemento che contiene direttamente testo?
- 28. È possibile utilizzare un ActionLink che contiene un elemento?
- 29. Asserire che la raccolta "Contiene almeno un elemento non null"
- 30. Come trovare elementi che corrispondono a più condizioni
Avete un codice che non funziona o è una domanda "darmi il codice"? Che cosa hai provato? – CanSpice
Ho bisogno di trovare un approccio, posso fare il codice. Se è già risolto e il codice è disponibile, anche meglio. –
Sembra che jQuery possa farlo con: contiene() selettore. forse la sua logica può essere ridefinita per usare la ricerca regexp invece della ricerca di sottostringa. –