Heim > Web-Frontend > js-Tutorial > Wie erkennt man mit JavaScript effizient angeklickte Wörter im Text?

Wie erkennt man mit JavaScript effizient angeklickte Wörter im Text?

Patricia Arquette
Freigeben: 2024-10-28 03:10:30
Original
988 Leute haben es durchsucht

How to Efficiently Detect Words Clicked on in Text with JavaScript?

Angeklickte Wörter im Text mit JavaScript erkennen

Beim Erstellen eines JavaScript-Skripts, mit dem Benutzer Wörter auswählen können, indem sie darauf klicken, wird die Frage gestellt entsteht: Wie kann dies effizient und elegant erreicht werden?

Ausführliche Methode mit Klassenanalyse

Ein üblicher, aber langwieriger Ansatz besteht darin, den gesamten HTML-Code zu analysieren und jedes Wort durch getrennt aufzuteilen Leerzeichen und das Einschließen jedes Wortes in ein Element. Anschließend wird ein Ereignis-Listener hinzugefügt, um Klicks auf die Wortklasse zu erkennen, und das angeklickte Wort wird über $(this).innerHTML abgerufen. Obwohl diese Methode funktioniert, lassen Leistung und Ästhetik zu wünschen übrig.

Optimierte Lösung ohne Klassenanalyse

Für eine effizientere und elegantere Lösung sollten Sie Folgendes berücksichtigen:

Schritt 1: Auswahl erfassen

Verwenden Sie window.getSelection(), um die Auswahl des Benutzers zu erfassen.

Schritt 2: Wortgrenzen identifizieren

Durchlaufen Sie den Auswahlbereich, um die Start- und Endpunkte des angeklickten Worts zu bestimmen, und vermeiden Sie Leerzeichen.

Schritt 3: Abrufen des angeklickten Wortes

Kombinieren Sie die identifizierten Zeichen innerhalb des Auswahlbereichs, um das angeklickte Wort zu bilden.

Beispielimplementierung

Der folgende JavaScript-Code bietet eine praktische Implementierung dieser Lösung:

$(".clickable").click(function (e) {
  s = window.getSelection();
  var range = s.getRangeAt(0);
  var node = s.anchorNode;

  // Find starting point
  while (range.toString().indexOf(' ') != 0) {
    range.setStart(node, (range.startOffset - 1));
  }
  range.setStart(node, range.startOffset + 1);

  // Find ending point
  do {
    range.setEnd(node, range.endOffset + 1);
  } while (
    range.toString().indexOf(' ') == -1 &&
    range.toString().trim() != ''
  );

  // Alert result
  var str = range.toString().trim();
  alert(str);
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erkennt man mit JavaScript effizient angeklickte Wörter im Text?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage