


js implémente des invites de mots clés dans le champ de recherche Web
Lorsque nous parcourons des sites Web, nous rencontrons souvent des champs de recherche, etc. Lorsque nous saisissons le contenu que nous souhaitons rechercher, certaines invites apparaîtront ci-dessous. Pour de telles opérations, nous utilisons JavaScript Comme c'est possible. être atteint, expliquons comment y parvenir !
Lors de l'écriture de cette fonction, je suis très pointilleux sur les détails. Si je n'y prête pas attention, divers inconforts apparaîtront sur la page
Regardons d'abord l'effet : Lorsque je saisis un caractère dans la zone de saisie, le contenu correspondant apparaîtra plus tard. Cliquez simplement sur nous pour créer un lien vers la zone de document correspondante, très adaptée à la recherche et à la navigation sur le site.
Je présente le code de test complet ci-dessous.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form id="form" name="form"> 搜索:<input type="text" name="input1"> </form> <p id="wrap" style="width: 100;height: 100px;border: 1px solid black;"></p> <script type="text/javascript"> var form = document.getElementById("form"); var input1 = document.forms["form"]["input1"]; var wrap = document.getElementById("wrap"); var arr1 = [" 我爱中国"," 我爱美国"," 我爱英国"," 我天生神力"];//数组里面的元素就是我希望在输入宽输入某个字符后在下方出现的搜索字符。 var arr2 = [];//这个数组是为了装入经过筛选和匹配符合要求的arr1中的元素。例如输入值为"我",arr1中的4个元素都出现。输入"我爱",则出现前三个。出现的元素都要装入到arr2中方便后面依据数组中的元素创建元素。 input1.oninput = function() {//添加input监控,这样我们可以随时感知输入框值的变化 var val = input1.value;//获取当前输入框的值。 arr2 = [];//使得每次输入框值变化后数组arr2为空。不然每改变一次值就创建一次元素而不删除的话,wrap中添加的元素会越来越多。 /*清掉wrap里面的所有p元素。这里要注意一个问题,很重要。我们在获取wrap内的p元素的时候要注意以下几个问题: 1.getElementsByTagName("p");返回的是一个数组而不是一个元素,不能直接通过remove()删除; 2.使用querySelectorAll("p")获取p元素,使用for循环删除所有p元素不能按照以下方式写: for (var k = 0; k < p1.length; k++) { p1[k].remove(); }; 因为将数组内的元素从下标为0的元素开始删除,每删除一个,删除前下标为1的元素就会自动下标为0的位置。这样通过上面的循环并不能将wrap中的元素删除干净。 你可以这样写: for (var k = p1.length-1; k >= 0; k--) { p1[k].remove(); }; 或者不要通过getElementsByTagName("p")这种方式获取元素,而是通过querySelectorAll("p")就不会出现上面的问题。 */ var p1 = wrap.getElementsByTagName("p"); // var p1 = wrap.querySelectorAll("p"); for (var k = p1.length-1; k >= 0; k--) { p1[k].remove(); }; //indexOf用来查看arr1中的每个元素是否包含输入款的字符。包含则返回第一个下标,不包含则返回-1.这里要注意输入框中的值为空时返回的0,输入第一个字符为"我"也返回0,这时如果用(arr1[i].indexOf(val) > -1为条件,输入框为空时也会在wrap内生成p元素。所以我在arr1数组元素字符串第一个位置加一个空格,这样输入第一个字符为"我"返回1,再将条件变为arr1[i].indexOf(val) > 0 for (var i = 0; i < arr1.length; i++) { if (arr1[i].indexOf(val) > 0 ) { // console.log(val); arr2.push(arr1[i]); } //创建元素的循环。在每个创建的元素内添加arr2数组中的字符串。 for (var j = 0; j < arr2.length; j++) { var p = document.createElement("p"); var a = document.createElement("a"); a.innerText = arr2[j]; a.setAttribute("href","http://www.baidu.com"); p.appendChild(a); wrap.appendChild(p); } } </script> </body> </html>
1. Zone de saisie du formulaire.
2. Assurez-vous de surveiller les changements de valeur de la zone de saisie du formulaire. En ajoutant l'événement oninput
3, comment faire apparaître la valeur de recherche et cela peut être une valeur d'entrée
exercice ensemble.
- Placez la valeur de recherche dans un tableau, utilisez indexOf pour récupérer si les éléments du tableau contiennent la valeur de la zone de saisie et filtrez ces valeurs de cette manière, la valeur de la zone de saisie. et la valeur du champ de recherche sont connectées ensemble.
- Mettez la valeur qui répond à la condition dans l'élément p créé, puis placez cet élément p dans wrap.
Que faire ?
Créez à nouveau un tableau, placez tous les éléments du tableau arr1 qui remplissent les conditions dans ce tableau, puis écrivez un jugement pour déterminer si la valeur sélectionnée à chaque fois est dans le tableau arr2. Si elle n'appartient pas au tableau arr2, ajoutez
.
De cette façon, les éléments en double ne seront pas ajoutés au tableau arr2.
5. Vous découvrirez ensuite pourquoi les éléments apparaissent encore et encore. Il s'agit d'un problème de résidus d'éléments, c'est-à-dire que les éléments précédents ne sont pas supprimés. Après chaque modification, vous devez supprimer les éléments créés dans le wrap, sinon ils existeront toujours. Cela se fait en utilisant getElementsByTagName() pour obtenir les éléments et les supprimer.
6. La fonction générale est terminée, et puis il y a quelques petits détails, mais ce sont ces petits détails qui font perdre du temps.
La première est que la valeur de recherche apparaîtra également lorsque la zone de saisie a une valeur vide. Est-ce que arr1[i].indexOf(val) est supérieur à 0 ou -1 ? Il s'avère que la valeur de retour d'une valeur nulle est également 0, ce qui exécutera également le code qui crée l'élément, j'ai donc ajouté un espace avant chaque chaîne dans arr1 .
L'autre concerne les points clés auxquels il faut prêter attention lors de l'utilisation de getElementsByTagName() pour obtenir des éléments. Il est important de le savoir. J'étais coincé sur ce problème depuis longtemps. Les zones de code ci-dessus sont expliquées en détail.
Recommandations associées :
Mise en œuvre de la fonction d'invite automatique de recherche javascript
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Que dois-je faire si Google Chrome indique que le contenu de cet onglet est partagé ? Lorsque nous utilisons Google Chrome pour ouvrir un nouvel onglet, nous rencontrons parfois une invite indiquant que le contenu de cet onglet est partagé. Alors, que se passe-t-il ? Laissez ce site fournir aux utilisateurs une introduction détaillée au problème de Google Chrome, invitant à partager le contenu de cet onglet. Google Chrome indique que le contenu de cet onglet est en cours de partage. Solution : 1. Ouvrez Google Chrome. Vous pouvez voir trois points dans le coin supérieur droit du navigateur « Personnaliser et contrôler Google Chrome ». l'icône. 2. Après avoir cliqué, la fenêtre de menu de Google Chrome apparaîtra ci-dessous et la souris se déplacera vers « Plus d'outils ».

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

L'application Baidu Tieba indique que l'opération est trop fréquente. Cette invite vise généralement à maintenir le fonctionnement normal de la plate-forme et l'expérience utilisateur, à empêcher le spam d'écran malveillant, le spam publicitaire et d'autres comportements inappropriés. Pour les méthodes de traitement spécifiques, vous pouvez lire le didacticiel. partagé par l'éditeur. L'application Baidu Tieba indique que l'opération est trop fréquente. Partager comment y faire face 1. Lorsque le système affiche [L'opération est trop fréquente], nous devons attendre un moment. Si vous êtes anxieux, vous pouvez d'abord faire autre chose. Généralement, après avoir attendu un moment, ce message d'invite disparaîtra automatiquement et nous pourrons l'utiliser normalement. 2. Si après une longue attente, l'écran affiche toujours [Opération trop fréquente], nous pouvons essayer d'aller au Tieba Emergency Bar, au Tieba Feedback Bar et à d'autres Tieba officiels, poster pour signaler ce phénomène et demander au personnel officiel de le résoudre. 3.

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest
