Marcado de palabras clave con jQuery

  • por
Resaltado de términos de con datos leídos de un archivo JSON, el ejemplo está realizado con mark.js para la lectura del archivos JSON utilizaremos una llamada AJAX, que tras recibir los datos realizara el marcado de las palabras extraídas del mismo

Librerías necesarias:

https://code.jquery.com/jquery-latest.min.js
https://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js
https://maxcdn.bootstrapcdn.com/bootswatch/3.3.6/superhero/bootstrap.min.css
https://cdn.jsdelivr.net/mark.js/8.6.0/jquery.mark.min.js
<h2><a href="https://markjs.io/" target="_blank">mark.js</a> ejemplo con jQuery</h2>

<div class="panel panel-default">
  <div class="panel-body context">
    <p>
      Lorem ipsum Red dolor sit āmet, Large consetetur sadipscing elitr, sed diam Apple nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam Large voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, nò sea takimata
      sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
      rebum. Stet clita kasd gubergren, no sea takimata Apple sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
      At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie çonsequat, vel illum dolore
      eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit prāesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet,
    </p>
  </div>
</div>

<div class="panel panel-default">
  <div class="panel-body">
    <p>
      <small>Demo by <a href="https://github.com/lmcDevloper" target="_blank">lmcDevloper</a></small>
    </p>
  </div>
</div>

JavaScript

$(function() {

	$.ajax({
		type: "GET",
		url: "https://support.oneskyapp.com/hc/en-us/article_attachments/202761627/example_1.json",
		dataType: "json",
		success: function(data) {
      console.warn(data)
			$(".panel").mark(data.fruit);
			$(".panel").mark(data.size);
			$(".panel").mark(data.color);
		},
		error: function(data) {
			alert("Error en la carga del archivo JSON");
		}
	})

  var length = function(obj) {
      return Object.keys(obj).length;
  }
})

JSON

{
    "fruit": "Apple",
    "size": "Large",
    "color": "Red"
}

Cuando no se cambian los estilos de la etiqueta mark predeterminada, los navegadores se asegurarán de que se vea resaltado de manera predeterminada. Es posible que desee personalizar el estilo, esto se puede hacer usando mediante CSS:

mark{
    background: red;
    color: white;
}

Ejemplo de funcionamiento