la variable cant_prefs y los arrays son globales y lleva la cuenta de los select agregados
Código PHP:
function agregarPreferencia()
{
var div = document.getElementById('preferencias');
var sel1 = document.createElement('select');
var sel2 = document.createElement('select');
var p = document.createElement('p');
var i, opt;
sel1.name = "Dia_" + cant_prefs;
sel1.className = "AA";
sel1.style.marginRight = "6px";
sel2.name = "Hora_" + cant_prefs;
sel2.className = "AA";
p.className = "A";
for (i=0;i<dias.length;i++)
{
opt = document.createElement('option');
opt.value = i+1;
opt.text = dias[i];
//opt = new Option(dias[i], i+1);
sel1.appendChild(opt);
}
for (i=0;i<hs.length;i++)
{
opt = document.createElement('option');
opt.value = i+1;
opt.text = hs[i];
//opt = new Option(hs[i], i+1);
sel2.appendChild(opt);
}
p.appendChild(sel1);
p.appendChild(sel2);
div.appendChild(p);
cant_prefs++;
}
edit: parece que lo resolvi reemplazando opt.text = dias[i]; por esto:
var texto = document.createTextNode(dias[i]);
opt.appendChild(texto);