Foros del Web » Programando para Internet » Javascript »

buscador que resalta texto

Estas en el tema de buscador que resalta texto en el foro de Javascript en Foros del Web. Buenos días a todos quisiera un poco de ayuda con éste tema. quiero crear un buscador como el que se genera en el navegador al ...
  #1 (permalink)  
Antiguo 19/08/2016, 11:03
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 8 años, 7 meses
Puntos: 2
buscador que resalta texto

Buenos días a todos

quisiera un poco de ayuda con éste tema. quiero crear un buscador como el que se genera en el navegador al oprimir ctrl + F, es decir que mientras yo dígito, éste me busque el texto en un div determinado y le modifique el css.

Tengo lo siguiente:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.         $("#producto").keyup(function(){
  3.                  var producto = $("#producto").val();
  4.                  $("div:contains('"+producto+"')").css({"font-weight": 'bold', "color": 'red', "text-decoration": "underline" });
  5.              });
  6. });

Pero al hacer ésto, me resalta todo el texto en todos los divs que tengo, y no puedo hacer el contains en un div especifico, por devir hacer:

Código Javascript:
Ver original
  1. $("#div_contenedor:contains('"+producto+"')")css();

y de igual forma que me resalte solo el texto que digité, no que me resalte todo el texto. Podrían por favor ayudarme o indicarme como puedo investigar para implementarlo?
  #2 (permalink)  
Antiguo 23/08/2016, 06:35
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: buscador que resalta texto

uno ya antiguo
Cita:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml"lang="es" xml:lang="es">
<head>
<meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
<script type="text/javascript">
var cadena = '';
var largo_cadena = 0;

window.onload = function() {cadena = document.getElementById('texto').innerHTML; largo_cadena = cadena.length;};

function Resaltar(cadABuskar) {
var caracteresInput = cadABuskar.length;
var rgEx = new RegExp(cadABuskar, 'g\i');

if (cadena.substr(0,parseInt(largo_cadena)).match(rgE x)) {
var marca = cadena.substr(0,parseInt(largo_cadena)).replace(rg Ex, function(coincidencia){return '<span style=\"background-color:#9ACD32;color:#FFF;\">' + coincidencia + '</span>';});
document.getElementById('texto').innerHTML = marca;
} else {
document.getElementById('texto').innerHTML = cadena;
}
}
</script>
</head>
<body>
<div id="texto">Esto es una prueba para resaltar caracteres o palabras de este texto prueba</div>
<form method="" action="" name="">
<input type="text" value="" id="terminos" onkeyup="Resaltar(this.value,event);" />
</form>
</body>
</html>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:34.