2011-09-26 10 views
8

Sólo necesito una función simple que buscará la URL actual de una cadena (es decir, "la naturaleza") y después se agregará una clase a un objeto. Sigo buscando formas de buscar en la consulta, pero quiero buscar en toda la url. Si es posible, sin jQuery. De lo contrario, jQuery funcionará.Javascript simple: url búsqueda de cuerda, hacer algo

Respuesta

10

Usted puede obtener la dirección URL con window.location.href, y buscarla como usted quiera:

var location = window.location.href; 
if(location.indexOf("whatever") > -1) { 
    //Do stuff 
} 

window.location devuelve un objeto Location, que tiene una propiedad href que contiene la dirección URL de la página.

3

El enfoque más básico es algo como esto:

window.location.href.indexOf('nature') 

que devolverá -1 si no se encuentra la cadena. De lo contrario, devuelve el índice de la cadena dentro de la cadena URL.

1

El uso de expresiones regulares, como una alternativa:

if (window.location.toString().match(/nature/)) { 
    yourobj.className = 'newclass'; 
} 
0

Si estás en busca de un valor en la cadena de consulta, puede intentar esto:

var searchIndex = window.location.search.indexOf("nature"); 

De lo contrario, usted puede hacer esto:

var searchIndex = window.location.href.indexOf("nature"); 

también puede hacer esto:

var searchIndex = window.location.href.search("/nature/"); 

Para comprobar si se ha encontrado la palabra, usted puede hacer esto:

if (searchIndex > -1) 
    //logic here 
0

Creo que éste debe darle un buen punto de partida. JSFiddle está disponible aquí.

<div id="test">Some text</div> 

.red 
{ 
    background-color: #FF0000; 
} 

function handler(url, textToMatch, objectToChange, classToAssign) 
{ 
    if (url.search(textToMatch) != -1) 
    { 
     objectToChange.className = classToAssign; 
    } 
} 

var url = 'http://www.some-place.com&nature'; //window.location.href in your case 
var div = document.getElementById('test'); 

handler(url, 'nature', div, 'red'); 
0

El hash de la URL causado problemas para mí, así que en vez he usado un "?".

A modo de ejemplo digamos que tengo la URL: http://example.com?someString

Primero recupera la URL: "?"

var activeURL = window.location.href; 

entonces tomo todo, desde el índice de + 1 (porque no me importa incluir "?") En adelante.

var activeItem = aactiveURL.substring(activeUrl.indexOf('?') + 1, activeURL.length); 

activeItem será "someString"

Cuestiones relacionadas