Foros del Web » Programando para Internet » Jquery »

Tablas

Estas en el tema de Tablas en el foro de Jquery en Foros del Web. Buenas tardes, espero que me puedan ayudar con este problema que no logro resolverlo . genero una tabla dinámica con javascript asi: function addRow(tableID) { ...
  #1 (permalink)  
Antiguo 11/04/2016, 17:29
 
Fecha de Ingreso: febrero-2016
Ubicación: aqui
Mensajes: 11
Antigüedad: 8 años, 2 meses
Puntos: 0
Tablas

Buenas tardes, espero que me puedan ayudar con este problema que no logro resolverlo .
genero una tabla dinámica con javascript asi:

function addRow(tableID) {

var miTabla = document.getElementById(tableID);

//var rowCount = table.rows.length;
//var row = table.insertRow();

var miTabla = document.getElementById("cuerpotabla");
var fila = document.createElement("tr");
var celda1 = document.createElement("td");
var celda2 = document.createElement("td");
var celda3 = document.createElement("td");
var celda4 = document.createElement("td");
var element2 = document.createElement("input");
element2.type="text";
celda4.appendChild(element2);
var element1 = document.createElement("input");
element1.type = "button";
element1.value = "+";
element1.style.width="20px";
element1.style.height="22px";
element1.setAttribute("onclick", "addRow('cuerpotabla')");
celda3.appendChild(element1);
celda1.innerHTML = "txt1";
celda2.innerHTML = "txt2";
fila.appendChild(celda1);
fila.appendChild(celda2);
fila.appendChild(celda4);
fila.appendChild(celda3);
var TR = miTabla.getElementsByTagName("tr");


miTabla.appendChild(fila); }

y al comiendo de la tabla ya tengo 2 filas creadas por default que son el emcabezado y lo que yo quiero es que cuando le de click a una fila me aparesca un alert(''); diciendome el numero de index donde se encuentra y lo hago de esta forma:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" >

$(document).ready(function(){
$("tr").on('click', function(){
var x = $(this).index();

alert(x);
})
})
</script>
y todo bien hasta ahí por que si me da el numero de index de la fila que le di clic pero solo me da el index de las primeras dos filas que ya tengo por default y mi PROBLEMA ES QUE CUANDO CREO UNA FILA DINAMICAMENTE Y LE DOY CLIC EN ELLA PARA QUE ME MUESTRE SU INDEX NO ME SALE NADA.
Espero que me puedan ayudar con este problema gracias.
  #2 (permalink)  
Antiguo 12/04/2016, 11:54
 
Fecha de Ingreso: diciembre-2015
Ubicación: rosario
Mensajes: 69
Antigüedad: 8 años, 4 meses
Puntos: 5
Respuesta: Tablas

primero xq no haces todo con jquery, es decir, xq haces el manejo sobre la tabla con js y luego el evento lo manejas con jquery?
y para que necesitas el index de ese elemento?
  #3 (permalink)  
Antiguo 12/04/2016, 12:03
 
Fecha de Ingreso: febrero-2016
Ubicación: aqui
Mensajes: 11
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Tablas

bueno, con java script lo aria as:

<script type="text/javascript" >

onload = function() {
if (!document.getElementsByTagName || !document.createTextNode) return;
var rows = document.getElementById('principal2').getElementsB yTagName('tbody')[0].getElementsByTagName('tr');
for (i = 0; i < rows.length; i++) {
rows[i].onclick = function() {
alert(this.rowIndex + 1);
}
}
}
</script>

pero es el mismo problema porque solo me da el index de las filas que ta tengo por default y lo que yo quiero esque tambien me de el index de las filas que voy creando dinamicamente para con ese index agregrar filas abajo de la fija que le de clic.
para agregar filas hago esto :

var TR = miTabla.getElementsByTagName("tr");
miTabla.insertBefore(fila, TR[1]);

que ya lo avía puesto anteriormente en la funcion addRow() y como vez ingreso una fila dinamica en una posición que ya predefiní y lo que quiero es obtener el index de la fila donde le de clic para meter ese indiex en :
miTabla.insertBefore(fila, TR["AQUI VA EL INDEX"]);
y me agrege la fila antes de ese index

Etiquetas: tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:18.