utilizzare i doppi backslash:
jQuery("#someform\\:somepanel\\:somebutton")
correlati:
Update # 1
Dopo il tuo commento per quanto riguarda auto sfuggire il miglior metodo che vedo è quello di creare una funzione all'interno dell'oggetto stringa In questo modo
String.prototype.escape = function()
{
return this.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/])/g,'\\$1')
}
è anche possibile definire in modo specifico una funzione on per i due punti in questo modo:
String.prototype.escape_colon = function()
{
return this.replace(/:/,'\\$1')
}
Utilizzando questo modo:
jQuery("someform:somepanel:somebutton".escape())
ma ciò causerebbe problemi sulla pseudo selettori quali:
jQuery("someform:somepanel:somebutton:first".escape())
il selettore :first
sarà sfuggito e quindi non troverai il tuo elemento.
ma y la nostra scommessa migliore sarà quella di costruire un parser stringa all'interno del prototipo di sostituire dove trova uno specifico set di caratteri quali:
jQuery("someform(_e(:))somepanel(_e(:))somebutton:first".escape())
questo modo si può definire che cosa si vuole fuggire, ma se così fosse, puoi anche fuggire da loro.
http://api.jquery.com/category/selectors/ - Terza riga – jAndy
@jAndy non è lì, puoi citare la risposta? – IAdapter