2009-11-10 2 views
0

Je suis en train de sélectionner les types d'éléments spécifiques dans une rangée et changer leur attribut, en particulier les attributs id et name.textareas sélection

En utilisant les œuvres suivantes fines pour les boîtes d'entrée de texte en ligne unique:

$('input:text', newRow).attr('id','os' + newRowNum).attr('name','os' + newRowNum); 

cependant, quand je change le code html à:

<td><textarea name="os2" cols="24" rows="3" id="os2"></textarea></td> 

le script ne trouvera plus les attributs et les modifier . Une zone de texte est un élément d'entrée ... non?

J'ai aussi essayé:

$('input:text, textbox', newRow).attr('id','os' + newRowNum).attr('name','os' + newRowNum); 

et

$('input[type=text], textbox', newRow).attr('id','os' + newRowNum).attr('name','os' + newRowNum); 

mais ni travail.

Qu'est-ce qui me manque ici?

Répondre

2

Vous devez changer le sélecteur:

$('textarea', newRow).attr('id','os' + newRowNum).attr('name','os' + newRowNum); 
+0

Merde ... oui cela fonctionne très bien. Je jure que je pensais avoir essayé ça. Mais, un textarea est une zone de saisie de texte oui? Juste curieux de savoir pourquoi cela ne fonctionnerait pas? – Dave

+0

une zone de texte n'est pas une zone de saisie de la même manière, essentiellement la sélection « entrée: texte » est raccourci pour « entrée [type = « text »] » et depuis une zone de texte n'est pas un élément d'entrée il ne correspondra jamais à –

1

<textarea> éléments ne correspondent pas au sélecteur :text. Ceci ne fonctionne pas parce que c'est <textarea> pas <textbox>.

$('input:text, textbox', newRow) 

Donc cela devrait fonctionner:

$(":text, textarea", newRow)... 
+0

ne fonctionne pas. Il semble que ce ne soit que «textarea», comme l'a dit Michael dans la précieuse réponse. – Dave

0

Pas exactement.

$('input:text') 

recherchera spécifiquement les étiquettes <input>.

Vous devrez peut-être envisager:

$('textarea') ... 
+0

Ouais je l'ai eu du poteau de Michaels. Merci – Dave