2010-10-27 18 views

risposta

14

In primo luogo, non si dovrebbe avere più di un elemento con lo stesso ID.

Tuttavia, si potrebbe fare questo con le classi CSS:

<div> 
<textarea class="Text"></textarea> 
<textarea class="Text"></textarea> 
<textarea class="Text"></textarea> 
</div> 

<script> 
    $(".Text").focus(); 
    $(".Text").blur(); 
</script> 
2

Non è possibile avere più di un elemento con lo stesso ID, è necessario utilizzare le classi, quindi accedervi in ​​questo modo.

$(".classname").focus() 

E se si vuole mettere a fuoco un singolo ID utilizzare

$("#idname").focus() 
0

Non si può/non dovrebbe avere più elementi con lo stesso ID. Potresti usare un selettore di classe, ma in primo luogo risolverei il problema degli id.

0

non si può avere più di un elemento con lo stesso id non solo è html non valido, ma se lo si è utilizzato con jquery, il risultato sarebbe solo il primo. si dovrebbe usare una classe

$('.class_name').blur(); 
1

È preferibile non utilizzare lo stesso ID per 2 elementi sulla stessa pagina. Altre forme che imposta i nodi textarea possono essere

$('textarea').blur() // note it sets all textarea elements on the page 

o

$('#content textarea, #comment-area textarea').blur() 

o se si crea una classe per questi nodi textarea, è possibile utilizzare anche questo.

+0

. grazie a tutti –

17

La risposta giusta sarebbe

$("[id=yourID]").doSomething() 

per qualsiasi codice come

<textarea id="yourID" /> 
<img id="yourID" /> 
<div id="yourID" /> 

sì, lo so, questo non è valido html ma nota che abbiamo della classe media-sviluppatori hanno spesso a che fare con problemi creati da sviluppatori "migliori". Controlla Microsoft SharePoint per esempio, dove più ID sono molto comuni. E non possiamo dire ai nostri clienti che Microsoft ha fatto male, quindi non possiamo aiutarli. Diciamo che Microsoft ha fatto male, quindi dobbiamo aiutarli ;-)

+1

grazie. Questo è quello che stavo cercando. –

0

Questo è molto semplice se si desidera utilizzare `$ (" # yourID "). Click (function() {});

0

utilizzare jQuery delegato

sintassi

jQuery('body').delegate("#your-id","click",function(e){ // do code here }); 
Problemi correlati