Tengo una columna de tabla que intento expandir y ocultar:
jQuery parece ocultar los td
elementos cuando lo selecciono por clase pero no por el nombre del elemento .
Por ejemplo, ¿por qué:
$(".bold").hide(); // selecting by class works
$("tcol1").hide(); // select by element name does not work
Tenga en cuenta el HTML a continuación, la segunda columna tiene el mismo nombre para todas las filas. ¿Cómo podría crear esta colección usando el name
atributo?
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
<tr>
<td>data1</td>
<td name="tcol1" class="bold"> data2</td>
</tr>
Respuestas:
Puede usar el selector de atributos jQuery :
fuente
$("td:not([name='tcol1'])")
por ejemplo. Puedes verlo en este violínCualquier atributo se puede seleccionar de
[attribute_name=value]
manera. Vea la muestra aquí :fuente
var value = $("[name=nameofobject]");
<input name="itemid[]">
. Entonces, esta respuesta funcionó más perfectamente que la respuesta aceptada, gracias al uso apropiado de las comillas.Si tienes algo como:
Puedes leer todo de esta manera:
El fragmento:
fuente
Puede obtener la matriz de elementos por nombre de la manera antigua y pasar esa matriz a jQuery.
nota: la única vez que tendría una razón para usar el atributo "nombre" debería ser para la casilla de verificación o las entradas de radio.
O simplemente podría agregar otra clase a los elementos para la selección. (Esto es lo que haría)
fuente
Puede obtener el valor del nombre de un campo de entrada utilizando el elemento de nombre en jQuery de la siguiente manera:
fuente
Los marcos generalmente usan nombres de paréntesis en formularios, como:
Se puede acceder por:
fuente
He hecho así y funciona:
https://api.jquery.com/attribute-equals-selector/
fuente
Olvidó el segundo conjunto de citas, lo que hace que la respuesta aceptada sea incorrecta:
fuente
'td[name="nested[fieldName]"]'
Aquí hay una solución simple:
$('td[name=tcol1]')
fuente
Puede obtener el elemento en JQuery utilizando su atributo ID de esta manera:
fuente
Puede usar cualquier atributo como selector con
[attribute_name=value]
.fuente
Personalmente, lo que he hecho en el pasado es darles una identificación de clase común y la usé para seleccionarlos. Puede que no sea ideal ya que tienen una clase especificada que puede no existir, pero hace que la selección sea mucho más fácil. Solo asegúrate de ser único en tus nombres de clase.
es decir, para el ejemplo anterior, usaría su selección por clase. Mejor aún sería cambiar el nombre de la clase de negrita a 'tcol1', para que no obtenga inclusiones accidentales en los resultados de jQuery. Si bold realmente se refiere a una clase CSS, siempre puede especificar ambos en la propiedad de clase, es decir, 'class = "tcol1 bold"'.
En resumen, si no puede seleccionar por Nombre, use un selector jQuery complicado y acepte cualquier golpe de rendimiento relacionado o use selectores de Clase.
Siempre puede limitar el alcance de jQuery incluyendo el nombre de la tabla, es decir, $ ('# tableID> .bold')
Eso debería restringir a jQuery de buscar en el "mundo".
Todavía podría clasificarse como un selector complicado, pero restringe rápidamente cualquier búsqueda dentro de la tabla con el ID de '#tableID', por lo que mantiene el procesamiento al mínimo.
Una alternativa de esto si está buscando más de 1 elemento dentro de # table1 sería buscar esto por separado y luego pasarlo a jQuery ya que esto limita el alcance, pero ahorra un poco de procesamiento para buscarlo cada vez.
fuente
Puedes usar la función:
fuente
get.elementbyId()
? Quiso decirdocument.getElementById()
?