Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
eu gostaria de saber se existe como eu acessar uma div criada dinamicamente através de javascript.
Exemplo.
digamos que eu tenha o seguinte código html
<form name="Form1" action="" method="post">
<table width="292" border="0" id="Tabela">
<tr>
<td width="15" id="tcle">1</td>
<td width="116">
<div id="Combo1">
<select name ="combo1">
<option value="99">Selecione um Item</option>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
<option value="4">Item 4</option>
</select>
</div>
</td>
</tr>
</table>
agora, ao clicar no botão CriarCombo
eu crio uma DIV e incluo nessa div um ID e um <selec>
após isso chamo uma outra função que ´e carregaCombo
a função carrega combo deveria conseguir ler o meu div criado dinamico mas ela não consegue da erro, se eu criar uma div simulando uma criação dinamica funciona o código ....
CarregaCombo
var tDivName = 'Combo' + linha;
document.getElementById(tDivName).innerHTML = tCombo;
Alguém sabe como posso recuperar uma div criada dinamicamente em outra função ?a principio pelo getElementById tu deveria conseguir, coloca teu código completo aki, ou nos passa um link para testar.
[]´s
tem como sim... é só usar logica... poe teu codigo ai...
Vamos lá .... Como estou so testando criei itens fixos
<script language="javascript" type="text/javascript">
var tOptionCombo = "";
var count = 1;
var combos = new Array();
combos.length = 1;
// Option value da combo carregada do banco de dados
tOptionCombo += "<option value='";
tOptionCombo += "1'>";
tOptionCombo += "Item 1"
tOptionCombo += "</option>";
tOptionCombo += "<option value='";
tOptionCombo += "2'>";
tOptionCombo += "Item 2"
tOptionCombo += "</option>";
tOptionCombo += "<option value='";
tOptionCombo += "3'>";
tOptionCombo += "Item 3"
tOptionCombo += "</option>";
tOptionCombo += "<option value='";
tOptionCombo += "4'>";
tOptionCombo += "Item 4"
tOptionCombo += "</option>";
// Função para carregar a combo
function carregaCombo(linha)
{
var row = linha;
row = linha+1;
var tCombo = "<select name='combo" + linha + "' onchange='carregaCombo( " + (row) + ")' style='width: 150px;'>";
tCombo += "<option value='" + 99 + "' selected>Selecione um Item</option>";
tCombo += tOptionCombo;
tCombo += "</select>";
var tDivName = 'Combo' + linha;
document.getElementById(tDivName).innerHTML = tCombo;
var tObj = eval("document.Form1.Combo"+linha);
}
</script>
HTML
<body>
<form name="Form1" action="" method="post">
<p>Teste de Combo:</p>
<table width="292" border="0" id="Tabela">
<tr>
<td width="15" id="tcle">1</td>
<td width="116">
<div id="Combo1">
<select name ="combo1">
<option value="99">Selecione um Item</option>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
<option value="4">Item 4</option>
</select>
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
assim não funciona ....
agora se eu incluir o div fixo funciona
<body>
<form name="Form1" action="" method="post">
<p>Teste de Combo:</p>
<table width="292" border="0" id="Tabela">
<tr>
<td width="15" id="tcle">1</td>
<td width="116">
<div id="Combo1">
<select name ="combo1"
onchange = "carregaCombo(2)" >
<option value="99">Selecione um Item</option>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
<option value="4">Item 4</option>
</select>
</div>
</td>
</tr>
<tr>
<td width="15" id="tcle">1</td>
<td width="116">
<div id="Combo2">
</div>
</td>
</tr>
</table>
</form>
</body>
</html>não achei em nenhuma parte do teu código onde tu cria a div dinamicamente.
e se tu sempre vai carregar a combo dentro da div criada dinamicamente tu pode não precisa criar ela primeiro para depois inserir o código
poderia fazer algo do tipo:
var objDiv = document.createElement('div');
objDiv.innerhtml = tCombo;
e depois colocaria a div em uma nova linha da tabela
deve ter como usando um for e um contador.
tipo a primeira é div[0], ia você poe no codigo div[1], div[2], etc.
Mas ai teria que armazenar num array eu acho neh?