Nueva pregunta

Pregunta:

Fecha: 05-03-2015 09:30:22 (En Español)

Ayuda con JQuery ¿Cómo mostrar el primer compañero hacia arriba con un data llamado ppPadre?[Resuelta]

Verán, tengo esto:
<input type="checkbox" name="uno" data-ppPadre="1" value="algo" />
<input type="checkbox" name="uno" data-pp="1" value="algo2" />
<input type="checkbox" name="uno" data-pp="2" value="algo3" />
<input type="checkbox" name="uno" data-pp="3" value="algo4" />
<input type="checkbox" name="uno" data-ppPadre="2" value="algo5" />
<input type="checkbox" name="uno" data-pp="1" value="algo6" />
<input type="checkbox" name="uno" data-pp="2" value="algo7" />



Supongamos que tengo:
$("input:checkbox").click(function(){
if($(this).is(':checked')){
//Aquí va el código que les consulto
}
});


Digamos que lo que quiero hacer es que al seleccionarse, por ejemplo, el checkbox con data-app="1" yo verifique que su primer compañero hacia arriba con el data-ppPadre también está :checked, si no lo está pues no permitir que haga :checked a data-app="1" hasta que dé :checked a su primer padre hacia arriba (que en realidad es un compañero).

Supongo que todo eso lo puedo hacer fácil, solo que quiero saber cómo selecciono el primero compañero hacia arriba con un data-ppPadre.

Muchas gracias.
Etiquetas: HTML - Javascript - JQuery - Pregunta Votos: 0 - Respuestas: 6 - Vistas: 12 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 05-03-2015 11:45:11 Haber checa lo siguiente..

    
    $( "this" ).prev().css( "background-color", "blue" );
    
    
      Votos: 0 - Link respuesta
     
  • Fecha: 05-03-2015 12:20:09 Hola, gracias por responder. Ese código que me pones lo vi en la API pero no me dio idea clara de cómo resolver mi problema.
    Ya lo intenté de muchas maneras. Por el código que me pones supongo que se pintará de azul el background del elemento inmediato anterior al que le daré clic. No quiero eso, en todo caso lo que quisiera es seleccionar el elemento inmediato previo al que le di clic que tenga un background de color azul. Y creo que ese código de arriba no hace eso que necesito. Lo que hace es setearle el color.

    Ha de cuenta que necesito seleccionar el elemento que cumpla con ciertos requisitos, ya que lo tenga selecciondo ya le puedo hacer lo que quiera.
      Votos: 0 - Link respuesta
     
  • Fecha: 06-03-2015 07:44:28 Eso lo puse solamente para que pudieras tener de forma visual cual es el chekbox al cual te diriges... ya teniendo identificado que en realidad se selecciona el elemento deseado, puedes elimiar el css y determinar el estado de si esta checked o no..

    
     var checked = $( "this" ).prev().checked;
    
    
      Votos: 1 - Link respuesta
     
  • Fecha: 06-03-2015 09:18:43 Entiendo, pero prev me revuelve el objeto justo detrás, pero como puedes ver en el html que puse no siempre está justo detrás, a veces está más posiciones atrás. Por ejemplo, si le doy click al que tiene value "algo7" Me regresará el que tiene value "algo6" cuando en realidad deseo que me regrese el que tiene el value "algo5" porque es el que tiene el data ppPadre más cercano hacia atrás al que le di clic.   Votos: 0 - Link respuesta
     
  • Fecha: 06-03-2015 12:28:01 Hola, un poco rebuscada tu pregunta, lo digo por el html.
    Entiendo que cargas jquery.
    Te voy a agregar un class a cada elemento, los "data-ppPadre" tendrán class="padre" y los otros class="hijo" . Si podes agregarles eso el codigo que dejo te solucionara el problema tal cual esta , si no entendí mal.

    <script type="text/javascript">
        $(document).ready(function () {
    
            $("input.hijo").click(function () {
                console.log($(this).val());//imprimo en consola
                padre = $(this).prevAll("input.padre:first");
    
                if (!(padre.is(':checked'))) {
                    $(this).prop('checked', false);
                }
            })
        })
    </script>
    


    Espero sirva de ayuda.
    Un saludo!
      Votos: 2 - Link respuesta
     
  • Fecha: 14-03-2015 10:21:39 Hola Jesús, cuentanos ¿cómo te fue? así vemos de darte más ayuda o dar la respuesta como cerrada.

    Saludos y buen código!
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com