J'ai une colonne de table que j'essaye de développer et de cacher:
jQuery semble masquer les td
éléments lorsque je le sélectionne par classe mais pas par nom d'élément .
Par exemple, pourquoi:
$(".bold").hide(); // selecting by class works
$("tcol1").hide(); // select by element name does not work
Notez le code HTML ci-dessous, la deuxième colonne porte le même nom pour toutes les lignes. Comment pourrais-je créer cette collection en utilisant l' name
attribut?
<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>
Réponses:
Vous pouvez utiliser le sélecteur d'attribut jQuery :
la source
$("td:not([name='tcol1'])")
par exemple. Vous pouvez le voir sur ce violonTout attribut peut être sélectionné en utilisant
[attribute_name=value]
way. Voir l'exemple ici :la source
var value = $("[name=nameofobject]");
<input name="itemid[]">
. Cette réponse a donc fonctionné plus parfaitement que la réponse acceptée, grâce à l'utilisation appropriée des guillemets.Si vous avez quelque chose comme:
Vous pouvez tout lire comme ceci:
L'extrait:
la source
Vous pouvez obtenir le tableau des éléments par leur nom à l'ancienne et passer ce tableau à jQuery.
remarque: la seule fois où vous auriez une raison d'utiliser l'attribut "nom" devrait être pour les cases à cocher ou les entrées radio.
Ou vous pouvez simplement ajouter une autre classe aux éléments à sélectionner (c'est ce que je ferais)
la source
Vous pouvez obtenir la valeur du nom à partir d'un champ de saisie en utilisant l'élément name dans jQuery en:
la source
Les cadres utilisent généralement des noms de parenthèses dans les formulaires, comme:
Ils sont accessibles par:
la source
J'ai fait comme ça et ça marche:
https://api.jquery.com/attribute-equals-selector/
la source
Vous avez oublié le deuxième ensemble de guillemets, ce qui rend la réponse acceptée incorrecte:
la source
'td[name="nested[fieldName]"]'
Voici une solution simple:
$('td[name=tcol1]')
la source
Vous pouvez obtenir l'élément dans JQuery en utilisant son attribut ID comme ceci:
la source
Vous pouvez utiliser n'importe quel attribut comme sélecteur avec
[attribute_name=value]
.la source
Personnellement, ce que j'ai fait dans le passé, c'est de leur donner un identifiant de classe commun et de l'utiliser pour les sélectionner. Ce n'est peut-être pas idéal car ils ont une classe spécifiée qui peut ne pas exister, mais cela rend la sélection beaucoup plus facile. Assurez-vous simplement que vous êtes unique dans vos noms de classe.
c'est-à-dire que pour l'exemple ci-dessus, j'utiliserais votre sélection par classe. Mieux encore serait de changer le nom de la classe de gras en «tcol1», afin que vous n'obteniez aucune inclusion accidentelle dans les résultats de jQuery. Si bold fait réellement référence à une classe CSS, vous pouvez toujours spécifier les deux dans la propriété class - ie 'class = "tcol1 bold"'.
En résumé, si vous ne pouvez pas sélectionner par nom, utilisez un sélecteur jQuery compliqué et acceptez tout résultat de performance associé ou utilisez des sélecteurs de classe.
Vous pouvez toujours limiter la portée de jQuery en incluant le nom de la table, c'est-à-dire $ ('# tableID> .bold')
Cela devrait empêcher jQuery de rechercher le «monde».
Son pourrait toujours être classé comme un sélecteur compliqué, mais il contraint rapidement toute recherche dans la table avec l'ID de '#tableID', donc maintient le traitement au minimum.
Si vous recherchez plus d'un élément dans # table1, vous pouvez le rechercher séparément, puis le transmettre à jQuery car cela limite la portée, mais économise un peu de traitement pour le rechercher à chaque fois.
la source
Vous pouvez utiliser la fonction:
la source
get.elementbyId()
? Tu voulais diredocument.getElementById()
?