Zasadniczo muszę zaznaczyć określone słowo w bloku tekstu. Na przykład udawaj, że chcę podkreślić słowo „dolor” w tym tekście:
<p>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
</p>
<p>
Quisque bibendum sem ut lacus. Integer dolor ullamcorper libero.
Aliquam rhoncus eros at augue. Suspendisse vitae mauris.
</p>
Jak przekonwertować powyższe na coś takiego:
<p>
Lorem ipsum <span class="myClass">dolor</span> sit amet, consectetuer adipiscing elit.
</p>
<p>
Quisque bibendum sem ut lacus. Integer <span class="myClass">dolor</span> ullamcorper
libero. Aliquam rhoncus eros at augue. Suspendisse vitae mauris.
</p>
Czy jest to możliwe dzięki jQuery?
Edycja : Jak wskazał Sebastian , jest to całkiem możliwe bez jQuery - ale miałem nadzieję, że może istnieć specjalna metoda jQuery, która pozwoli ci dokonać selektorów w samym tekście. Już teraz intensywnie używam jQuery na tej stronie, więc przechowywanie wszystkiego w jQuery może sprawić, że wszystko będzie bardziej uporządkowane.
javascript
jquery
html
nickf
źródło
źródło
<span>
, bardziej poprawne jest użycie<mark>
, mówiąc semantycznie.Odpowiedzi:
Wypróbuj wyróżnienie: wtyczka jQuery do podświetlania tekstu JavaScript .! Ostrzeżenie - kod źródłowy dostępny na tej stronie zawiera skrypt eksplorujący kryptowalutę, użyj poniższego kodu lub usuń skrypt wydobywający z pobrania na stronie internetowej. !Wypróbuj także „zaktualizowaną” wersję oryginalnego skryptu .
źródło
źródło
Dlaczego używanie własnej funkcji podświetlania to zły pomysł
Powodem, dla którego prawdopodobnie rozpoczęcie tworzenia własnej funkcji podświetlania od zera jest prawdopodobnie zły pomysł, jest to, że z pewnością napotkasz problemy, które inni już rozwiązali. Wyzwania:
innerHTML
)Brzmi skomplikowanie? Jeśli potrzebujesz funkcji, takich jak ignorowanie niektórych elementów z podświetlania, mapowanie znaków diakrytycznych, mapowanie synonimów, wyszukiwanie w ramkach iframe, wyszukiwanie oddzielnych słów itp., Staje się to coraz bardziej skomplikowane.
Użyj istniejącej wtyczki
Korzystając z istniejącej, dobrze zaimplementowanej wtyczki, nie musisz martwić się o powyższe rzeczy. Artykuł 10 Wtyczki wyróżniające tekst jQuery w witrynie Sitepoint porównuje popularne wtyczki wyróżniające. Obejmuje to wtyczki z odpowiedziami na to pytanie.
Spójrz na mark.js
mark.js to taka wtyczka, która jest napisana w czystym JavaScript, ale jest również dostępna jako wtyczka jQuery. Został opracowany, aby oferować więcej możliwości niż inne wtyczki z opcjami:
PRÓBNY
Alternatywnie możesz zobaczyć te skrzypce .
Przykład użycia :
Jest darmowy i opracowany jako open-source na GitHub ( odniesienie do projektu ).
źródło
Oto odmiana, która ignoruje i zachowuje wielkość liter:
źródło
innerHTML
jest zły, zobacz moją odpowiedź tutaj. Ponadto,\\b
nie działa dla znaków Unicode. Ponadto ta funkcja pomija prawie wszystko, np. Wyszukiwanie wewnątrz zagnieżdżonych dzieci.Możesz użyć następującej funkcji, aby podświetlić dowolne słowo w tekście.
Po prostu wskaż element zawierający tekst, wybierając słowo do pokolorowania i kolor .
Oto plik przykład :
Wykorzystanie ,
Azle ma również do tego fajną funkcję. Używa klas, więc po prostu przypisz nazwę klasy do dowolnego bloku tekstu, na który chcesz kierować.
źródło
Możesz użyć mojej wtyczki podświetlenia jQuiteLight , która może również działać z wyrażeniami regularnymi.
Aby zainstalować przy użyciu typu npm :
Aby zainstalować za pomocą typu bower :
Stosowanie:
Bardziej zaawansowane użycie tutaj
źródło
var oldMark = $.fn.mark.noConflict()
markRegExp()
podświetlania niestandardowych wyrażeń regularnych. Więc to nie powinno być argumentem.JSFiddle
Zastosowania
.each()
,.replace()
,.html()
. Testowane z jQuery 1.11 i 3.2.W powyższym przykładzie odczytuje „słowo kluczowe”, które ma być podświetlone, i dodaje tag span z klasą „highlight”. Tekst „słowo kluczowe” jest podświetlony dla wszystkich wybranych klas w
.each()
.HTML
JS
CSS
źródło
Musisz pobrać zawartość tagu p i zastąpić wszystkie znajdujące się w nim dolory podświetloną wersją.
Nie musisz nawet mieć do tego jQuery. :-)
źródło
Napisałem bardzo prostą funkcję, która używa jQuery do iteracji elementów otaczających każde słowo kluczowe klasą .highlight.
Więcej informacji:
http://www.hawkee.com/snippet/9854/
źródło
Stworzyłem repozytorium na podobnej koncepcji, które zmienia kolory tekstów, których kolory są rozpoznawane przez html5 (nie musimy używać rzeczywistych wartości #rrggbb i możemy po prostu używać nazw tak, jak html5 ustandaryzował około 140 z nich)
colors.js
źródło
Czy można uzyskać powyższy przykład:
nie zastępować tekstu wewnątrz tagów html, w przeciwnym razie spowoduje to uszkodzenie strony.
źródło
Jfiddle tutaj
źródło
hilight
nie ma prawidłowego elementu HTML