2013-04-02 23 views
20

che sto generando una pagina con il lotto di prodotto, e per questo, ho bisogno di molta ID, e l'ho fatto con un lato server (Python) anch'io mando per ogni prodotto la propria <div id='hello1'> test </div>Come impostare l'ID usando javascript?

ora perché il utente dinamycaly impostare un valore e vedere il risultato nel browser, voglio generare un'altra ID, per questo ho trovato btoa("hello1") così ho generare un altro ID

quindi la domanda, come faccio a mettere in btoa("hello1")<div>?

Modifica: ciò che voglio generare è un altro <div> e non si aggiorna il primo.

<input id="{{str(product["avt"]["fto"])}}" > this will become <input id="12232" > because it is special to Tornado Template 
<span>New price :</span> 
<span id=btoa({{str(produit["avt"]["fto"])}})> This is where i use innerHTML </span> 

come si può vedere, gli utenti inseriranno un valore e lo vedranno in modo dinamico.

Questo funzionerà da Python utilizzando:

<span id="{{base64.b64encode(str(produit["avt"]["fto"]))}}"></span> 

ma io se può essere fatto utilizzando Javascript, il server sarà gratuito per la metà delle operazioni!

+2

Mostraci come stai generando il div. – bfavaretto

+0

ok, lo aggiornerò –

+1

Non sono quei modelli elaborati sul lato server con python? Stai creando qualche elemento con JavaScript? – bfavaretto

risposta

44

Intendi questo?

var hello1 = document.getElementById('hello1'); 
hello1.id = btoa(hello1.id); 

Per promuovere l'esempio, dicono che si voleva ottenere tutti gli elementi con la classe 'abc'. Possiamo usare querySelectorAll() per raggiungere questo obiettivo:

HTML

<div class="abc"></div> 
<div class="abc"></div> 

JS

var abcElements = document.querySelectorAll('.abc'); 

// Set their ids 
for (var i = 0; i < abcElements.length; i++) 
    abcElements[i].id = 'abc-' + i; 

Questa assegnerà l'ID 'abc-<index number>' ad ogni elemento. Quindi sarebbe venuto fuori in questo modo:

<div class="abc" id="abc-0"></div> 
<div class="abc" id="abc-1"></div> 

Per creare un elemento e assegnare un id possiamo usare document.createElement() e poi appendChild().

var div = document.createElement('div'); 
div.id = 'hello1'; 

var body = document.querySelector('body'); 
body.appendChild(div); 

Aggiornamento

È possibile impostare il id sul vostro elemento come questo se lo script è nel file HTML.

<input id="{{str(product["avt"]["fto"])}}" > 
<span>New price :</span> 
<span class="assign-me"> 

<script type="text/javascript"> 
    var s = document.getElementsByClassName('assign-me')[0]; 
    s.id = btoa({{str(produit["avt"]["fto"])}}); 
</script> 

Le vostre esigenze non sono ancora chiare al 100%.

+0

no, un altro –

+1

Cosa intendi? È così che imposti un 'id'. Prendi l'elemento 'e poi usa' element.id' –

+3

@AbdelouahabPp un altro ?? quale altro modo ti aspetti? questo è il più semplice e standard uno – exexzian

Problemi correlati