ID jquery con spazi



Answers

Non utilizzare spazi, il motivo è semplice, il carattere spazio non è valido per l'attributo ID.

I token ID devono iniziare con una lettera ([A-Za-z]) e possono essere seguiti da un numero qualsiasi di lettere, cifre ([0-9]), trattini ("-"), trattini bassi ("_"), due punti (":") e periodi (".").

Ma se non ti preoccupi degli standard, prova $("[id='content Module']")

Thread simile> Quali sono i valori validi per l'attributo id in HTML?

Modifica: come l'ID differisce tra HTML 4.01 e HTML5

HTML5 elimina le restrizioni aggiuntive sull'attributo id. Gli unici requisiti rimasti - oltre a essere unici nel documento - sono che il valore deve contenere almeno un carattere (non può essere vuoto) e che non può contenere spazi.

Link: http://mathiasbynens.be/notes/html5-id-class

Question

Qualcuno sa come selezionare un elemento nel DOM per ID con jQuery, quando quell'ID ha uno spazio?

Ad esempio, l'ID del mio articolo sarebbe

<div id="content Module">Stuff</div>

Come selezionerei questo con jQuery?

Se lo faccio e basta

$("#content Module").whatever() 

jQuery proverà a trovare un oggetto con l'ID del contenuto e l'ID del modulo, che non è quello che sto cercando.

Devo aggiungere che sto lavorando con una vecchia base di codice in cui questi due termini sono usati estesamente, quindi passare e modificare tutti gli ID sarebbe negativo.




Stavo avendo problemi con gli id ​​degli elementi contenenti virgole e / o spazi in jQuery, quindi l'ho fatto e ha funzionato come un incantesimo:

var ele = $(document.getElementById('last, first'));

Questo ha spazi e non funziona:

var ele = $('#last, first');

Questo ha una virgola e non funziona:

var ele = $('#last,first');




questo può funzionare se vuoi che l'elemento abbia il valore esatto per l'id

$("[id='content Module']").whatever();

ma se vuoi controllare se l'elemento ne ha solo uno (proprio come la classe) con o senza altri ID

$("[id~='content']").whatever();

questo selezionerà l'elemento se ha id="content" o id="content Module" o id="content Module other_ids"




Il metodo suggerito da Chris può essere probabilmente adattato per funzionare con le funzioni di jQuery.

var element = document.getElementById('content Module');
$(element) ... ;



Questo ha funzionato per me.

document.getElementById(escape('content Module'));



Links