2009-08-16 23 views

Respuesta

39

Esto debe hacerlo:

var newClass = window.location.href; 
newClass = newClass.substring(newClass.lastIndexOf('/')+1, 5); 
$('body').addClass(newClass); 

El conjunto "cinco caracteres" la cosa es un poco preocupante; ese tipo de corte arbitrario suele ser una bandera roja. Me gustaría recomendar la captura de todo hasta que una _ o:.

newClass = newClass.match(/\/[^\/]+(_|\.)[^\/]+$/); 

Ese patrón debe producir lo siguiente:

  • ../about_us.html: sobre
  • ../something.html: algo
  • . ./has_two_underscores.html: tiene
+6

más efectivo que $ ('cuerpo') es $ (document.body), evita el proceso de selección. Ver http://jsperf.com/jquery-body-vs-document-body-selector (nota: 'higher is better' en las estadísticas dadas) –

+0

$ (document.body) también funciona con jQuery 1.9.0 (mientras que $ ("cuerpo") no funciona (probado en Chrome)). –

+0

Oh gracias, estaba intentando hacer eso y no funcionaba pero me salvaste :) – Jerome

-3

Algo como esto podría funcionar:

$("body").attr("class", "about"); 

Se utiliza de attr() jQuery para añadir la clase 'sobre' al cuerpo.

+0

Esto funciona bien para agregar una clase al cuerpo. Simplemente no respondió la pregunta. – iCode

-1

Bueno, vas a querer document.location. Hacer algún tipo de manipulación de cadenas en él (a menos que jQuery tiene una manera de evitar que el trabajo para usted) y luego

$(body).addClass(foo); 

Sé que esto no es la respuesta completa, pero supongo que se puede trabajar a cabo el resto:)

1

Puede extraer la parte de la URL usando un simple regular expression:

var url = location.href; 
var className = url.match(/\w+\/(\w+)_/)[1]; 
$('body').addClass(className); 
-4

que tenía el mismo problema,

<body id="body"> 

Añadir una etiqueta de identificación con el cuerpo:

$('#body').attr('class',json.class); // My class comes from Ajax/JSON, but change it to whatever you require. 

A continuación, cambie el clase para que el cuerpo use la identificación. Esto se ha probado en Chrome, Internet   Explorer y Safari.

Cuestiones relacionadas