Concaténer id en jQuery
J'ai le code html suivant:
<div id="myDiv1_" class="formElement1"><asp:TextBox ID="TextBox1" CssClass="formInput1" runat="server"></asp:TextBox></div><br />
<div id="myDiv2_" class="formElement1"><asp:TextBox ID="TextBox2" CssClass="formInput1" runat="server"></asp:TextBox></div><br />
<div id="myDiv3_" class="formElement1"><asp:TextBox ID="TextBox3" CssClass="formInput1" runat="server"></asp:TextBox></div>
Et j'ai le texte suivant jQuery code:
$('input[type="text"]').focus(function () {
$(this).addClass("formElement1");
});
$('input[type="text"]').blur(function () {
$(this).removeClass("formElement1");
});
Ce que je suis en train de faire, c'est quand la zone d'entrée a le focus, je veux changer de classe pour la div. Je suis en train de changer la $(this).addClass
à utiliser quelque chose comme $('#' + div_id + textbox_id').addClass
.
Cependant, étant un peu nouveau pour jQuery, je ne suis pas sûr de savoir comment accomplsh cette. Toute aide est appréciée.
Merci
Vous devez vous connecter pour publier un commentaire.
Pour modifier la classe de la div parent, utilisation:
plus proche de la méthode de recherche les dom (à partir de cela) pour le premier élément qui correspondent à
Vous n'avez pas besoin d'un sélecteur. Juste traverser la
imbriquéeélément parent.Si vous voulez absolument faire un DOM de sélection, vous pouvez saisir le numéro de l'ID, et de l'utiliser dans le imbriqués ID.
EDIT: je l'avais inversé au premier abord. Je pensais le conducteur était sur le
<div>
. Fixe.$('#' + div_id +' > #'+ textbox_id').addClass("formElement1")
devrait fonctionneressayez d'utiliser commence avec sélecteur comme
$('div[id^=myDiv] input').focus(function(){$(this).addClass('focus');});
n'oubliez pas deremoveClass('focus')
surblur()
ainsi.Obtenir le parent de la zone de texte dans les dom et à appliquer la classe (div dans ce cas). Vous avez besoin de changer votre code comme suit:
De ce que je comprends, vos entrées sont à l'intérieur (les enfants de-de) de la div. Donc, vous voulez quelque chose comme:
Qui vous permettra de trouver le plus proche de la div parent et ajouter la catégorie appropriée.
Aussi, si vous êtes en utilisant ajax pour faire certains de remplacement ici, vous pouvez envisager d'utiliser
live()
:L'Id de chaque zone de texte sont uniques, je suppose donc que vous pouvez simplement le faire comme cela et il ne devrait y avoir aucune ambiguïté quant à l'élément que vous ajoutez à la classe d':
et si vous voulez seulement changer la classe seulement quand la bonne zone de texte reçoit le focus: