2011-08-01 24 views
6

Hii quiero mostrar el número de caracteres al div más cercano con la clase showchars.jQuery obteniendo el div más cercano con una clase

he tratado de hacer esto:

$('#maina').focus(function() { 
$(this).closest("div.showchars").find(".countchars").html("KKK"); 
    $("#error-1").html(""); 
    $(this).closest(".showchars").html("hmm"); 
}); 

Con este código HTML:

<tr> 
    <td> 
    Main Alliase/Current Alliase: 
    </td> 
    <td><input type="text" id="maina" class="countchars"/><br /> 
    <div class="showchars">o</div> 
    </td> 
<td><span id="handle-1" class="selector">?</span></td> 
    <td><div id="error-1" class="errors"></div></td> 
    </tr> 

Cuando me centro en los cuadros de entrada lo hace restablece el contenido de la clase de errores.

Pero doesnt cambia el texto a: hmm en el div.

¿Dónde he estado yendo mal o cuál es la mejor manera de obtener el div más cercano y luego implementar la API: .html("hmm")?

Gracias

Respuesta

6

.closest()mira al elemento en sí y sus padres para un partido.

En su ejemplo, .showchars es un hermano del cuadro de texto por lo que podría usar .siblings() en su lugar.

$(this).siblings(".showchars").html("hmm"); 

Demo here.

+0

Funcionó, pero ¿cambiará el contenido de todos los hermanos de la clase o qué? Gracias – kritya

+0

'.siblings()' acepta opcionalmente un filtro. Puede especificar '" .showchars "' para filtrar el elemento que necesita con precisión. –

+0

Sí, lo sé, pero quiero decir que pondrá eso a todos los hermanos que se encuentran con showchars de clase? Solo estoy preguntando si puedo implementarlo en otro lado también – kritya

1
$(this).nextAll(".showchars:first").html("hmm"); 
+0

No creo que obtener todo el próximo y luego seleccionar el primero es una buena opción. Pensamiento Gracias por probar: D – kritya

+0

Más bien usar el .sibling: D – kritya

+0

'hermanos' también obtendría todos los hermanos y filtrarlos con el selector –

Cuestiones relacionadas