Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/11/2021, 00:35
Avatar de Marvin
Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Detectar fila al hacer click en el boton para coger id de registro

Para trabajar correctamente con Javascript debes considerar el uso del html de manera estricta, en otras palabras, usar correctamente lo necesario para acceder a cada control.

Si bien en Javascript se permite la obtención de controles por clase, por atributo o incluso por nombre, la recomendación es que uses el acceso más directo a cada control, lo que usualmente se traduce como ID. Esto te servirá para evitar traer 20 controles y tener que escoger uno cuando lo que realmente necesitas es ir a buscar un sólo valor.
Código HTML:
<input type="text" value="1" class="id" id="primerInput" /> 
Por otro lado ten en cuenta que el ID de cada cosa debe ser distinto:
Código HTML:
<input type="text" value="1" class="id" id="primerInput" />
<input type="text" value="2" class="id" id="segundoInput" > 
Con esto agregado a tu HTML ya te permite usar un código Javascript para acceder al valor del primer control:
Código HTML:
<script type="text/javascript">
var inputUno = document.getElementById("primerInput").value;
alert(inputUno);
</script> 
Por lo que vi en tu codepen, estas usando jQuery. La manera de acceder a estos controles sería esta:
Código HTML:
<script type="text/javascript">
$(document).ready(function(){
	$("button").click(function() {
		alert($("#primerInput").val());
	});
});
</script> 
Ahora, para hacer lo que imagino quieres hacer, puedes usar este mecanismo, utilizando la estructura actual de tu HTML y sacando beneficios del uso de jQuery:
Código HTML:
<script type="text/javascript">
$(document).ready(function(){
	$("button").click(function() {
		//Con esto le dices que vayas al elemento "padre" del boton
		// (que es un td) y luego que suba al padre de los td (un tr)
		// y dentro de ese tr que encuentre el primer "hijo" (el primer td)
		td = $(this).parent().parent().find(':first-child');
		//Luego en ese primer td buscas el input con la clase .id y tomas el valor
		dataId = td.find('input.id').val();
		//Y en el siguiente td (next) buscas el input con la clase nombre
		dataNm = td.next().find('input.nombre').val();
		//Esto es para que puedas validar los datos en la consola
		console.log(dataId);
		console.log(dataNm);
	});
});
</script> 
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!