2011-09-30 28 views
5

Duplicar posible:
How do I get jQuery to select elements with a . (period) in their ID?Cómo proteger "." ¿carbonizarse?

me trató de ejecutar el siguiente código:

$('#info-mail.ru .domain-info').toggle(); 

example here

Y # info-mail.ru que he entendido interpretado como id = "info-mail" y clase = "ru", pero tengo la siguiente estructura:

<div id="info-mail.ru"> 
    <p class="domain-info"> 
     Some cool info 
     Some cool info 
     Some cool info 
     Some cool info 
    </p> 
</div> 

¿Cómo puedo proteger "." char en la instrucción selector? O la única forma es reemplazar todo "." con "_" (por ejemplo)?

TIA!

+7

Curiosamente, el '.' es técnicamente válida en un ID: [? ¿Cuáles son los valores válidos para el atributo id en HTML] (http://stackoverflow.com/q/ 70579) –

+1

@Pekka: comprobar que también fue mi primera intuición ;-) –

Respuesta

7

escape . con una doble barra invertida, una para el literal y el otro para jQuery:

$('#info-mail\\.ru .domain-info').toggle(); 

Ver jQuery FAQ para más detalles.

+1

Eliminar la última \\: $ ('# info-mail \\. Ru .domain-info'). Toggle(); El último está destinado a ser un selector de clase. –

+0

¡gracias! trabajo perfecto! ¿podría explicar - dónde se describe esta sintaxis de "escudo" (es decir, "\\")? – dizpers

+0

@dizpers - No se llaman caracteres de escudo pero ** caracteres de escape ** –

1

Creo que es necesario utilizar dos barras diagonales inversas antes del.

Así que el selector habría $('#info-mail\\.ru .domain-info').toggle();