Ver Mensaje Individual
  #7 (permalink)  
Antiguo 04/11/2009, 02:25
yazo
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 8 meses
Puntos: 3
Respuesta: Fallo en buscador que resalta el texto

Ya he conseguido resolver los puntos 1 y 2, pero el cambiar el fondo no he podido conseguirlo.

El código que tengo es:
Código HTML:
<html>
<head>
<script type="text/javascript">
	//Prototype para resaltar
	String.prototype.resaltar = function (capa) {
		return this.split(capa).join(capa.fontcolor("red"));
	}
	
	//Actualizamos la función suma
	window.onload=function(){
		//Numero de divs de la capa principal
		els = document.getElementById('CapaPrincipal').getElementsByTagName('div');
		
		//Recorremos los divs
		for(i=0;i<els.length;i++){
			//Guardamos los valores iniciales de los textos
			window[els[i].id] = document.getElementById(els[i].id).innerHTML;
		}
	}

	//Recorre los divs para encontrar las palabras
	function recorrer(){
		//Numero de divs de la capa principal
		els = document.getElementById('CapaPrincipal').getElementsByTagName('div');
		//Iniciamos el contador
		contador = 0;
		
		//Recorremos los divs
		for(i=0;i<els.length;i++){
			//Busca el texto y le resalta
			document.getElementById(els[i].id).innerHTML = window[els[i].id];
			document.getElementById(els[i].id).innerHTML = document.getElementById(els[i].id).innerHTML.resaltar(document.getElementById('palabra').value);
			//Texto de la capa
			texto = document.getElementById(els[i].id).innerHTML;
			if (texto.indexOf(document.getElementById('palabra').value) != -1) contador++;
		}
		
		//Indicamos el numero de resultados
		alert((contador==0)?"No se encontro ''"+document.getElementById('palabra').value+"''":"Se encontraton "+contador+" coincidencias");
	}
</script>
</head>
<body>

<div id="texto">El veloz murciélago está en el techo con el insecto que acaba de dar caza... (este no debe cogerle en la busqueda)</div>


<div id="CapaPrincipal">

    <div id="div0">0 El veloz murciélago está en el techo con el insecto que acaba de dar caza...</div>
    
    <div id="div1">1 El veloz murciélago está en el techo con el insecto que acaba de dar caza...</div>
    
    <div id="div2">2 El veloz murciélago está en el techo con el insecto que acaba de dar caza...</div>
    
    <div id="div2_1">2 1 El veloz murciélago está en el techo con el insecto que acaba de dar caza...</div>
    
    <div id="div2_1_1">2 1 1 El veloz murciélago está en el techo con el insecto que acaba de dar caza...</div>

</div>

<form name="resalte" >
Palabra: <input type="text" name="palabra" id="palabra" value="veloz" />
<input type="button" value="Buscar" onClick="recorrer()" />
</form>

</body>
</html> 
¿Como puedo cambiar el fondo del texto que buscas?

Gracias