2015-05-13 15 views
6

Ho seguito il codice:JavaScript Non in grado di impostare lo stato attivo al primo elemento li entro ul

<ul id='someId'> 
<li class='someClass'> 
</li> 
</ul> 

voglio impostare focus sul primo elemento li entro ul sulla base di alcune condizioni.

Il mio primo tentativo è come questo:

var ul = document.getElementById('someId');   
var child = ul.childNodes[0]; 
child.focus(); 

Il mio secondo tentativo è come questo:

var y = document.getElementsByClassName('someClass'); 
var aNode = y[0]; 
aNode.focus(); 

Ma nessuno dei precedenti lavori

Tutte le idee?

+0

Puoi mostrare l'HTML, per favore? – manzapanza

+0

Aggiornamento del codice – Sushil

+0

Il metodo HTMLElement.focus() imposta lo stato attivo sull'elemento specificato, se può essere focalizzato. È focalizzabile? Come sai che non si è concentrato? – Samir

risposta

16

Il problema è che non è possibile mettere a fuoco un elemento non di input senza impostare tabIndex.

<li tabindex="-1">...</li> 

Prova questo violino: jsfiddle

+0

Grazie .. ma non funziona – Sushil

+0

È possibile pubblicare un violino? –

+0

Fatto alcune modifiche .. Funziona ora .. Grazie – Sushil

0

Un 'li' non può avere attenzione, tuttavia un 'input' possibile, in modo che si scrive da soli il seguente script:

function installLI(obj){ 
     var ul = document.createElement('ul'); 
     obj.appendChild(ul); 
     var li = document.createElement('li'); 
     var txt = document.createElement('input'); 
     li.appendChild(txt); 
     ul.appendChild(li); 
     txt.focus(); 
     li.removeChild(txt); 
} 

Dove ' obj 'è l'oggetto (come un div modificabile) che stai aggiungendo alla tua lista.

Problemi correlati