2010-05-11 4 views
0

J'ai une application web qui a deux zones de texte. Lorsqu'une zone de texte reçoit un événement mousedown, une variable "side" est définie, soit "left" soit "right". Lorsqu'un utilisateur sélectionne du texte dans une zone de texte, trois chaînes sont créées. Un pour le texte avant le début de la sélection, la sélection elle-même, et le texte après la sélection jusqu'à la fin. Une fonction est de retour ce comme ceci:Utilisez-vous des variables pour décider quel objet dans un tableau obtient un attribut?

return { head: head_text, tail: tail_text, sel: sel_text, side: text_side } 

Maintenant, j'ai créé un tableau, et je veux qu'il apparaisse de telle sorte que nous obtenons, text.left ({ « tête »: "quatre score "," selection ":" et sept "," tail ":" il y a des années. "}) Je suppose que je le ferais par text.side = getSelection(), mais comment puis-je l'obtenir pour évaluer la variable" côté "au lieu de penser à comme un objet dans "texte"? Ok, juste pour clarifier, je peux me tromper complètement dans mes idées sur la façon dont cela fonctionne, mais ici, ça va. Je veux faire en sorte qu'une fonction peut regarder "texte" voir dans le texte deux objets, "gauche" et "droite", puis évaluer la tête, sel, et la queue de chaque objet. Serait-il plus facile pour moi d'utiliser deux objets?

+0

Il est vraiment difficile de comprendre réellement ce que vous demandez ici .. Par exemple, vous dites que vous avez un tableau (où?) et que vous voulez qu'il «apparaisse de telle manière que ..». Qu'est-ce que ça veut dire? –

Répondre

0

Je ne suis pas complètement sûr de comprendre la question. Cependant, je pense que vous voulez utiliser une chaîne pour accéder à une propriété d'un objet.

Javascript vous permet de cela comme un dictionnaire:

text["head"] = "four score"; // set's "four score" to the head property of text 

ou

text[side] = "your selection"; // where side is a property name 

Edit:

En réponse à votre édition, il serait plus facile de créer un objet avec deux propriétés et affecter à chacune de ces propriétés un objet. Comme les éléments suivants:

var text = {}; 
text.left = getHeadSelTail("left"); 
text.right = getHeadSelTail("right"); 

Vous pouvez maintenant accéder à la tête gauche à l'aide

text.left.head = "four score"; 

Et la tête droite à l'aide

text.right.head = "erocs ruof"; 
0

Ai-je raison en supposant que vous voulez un tableau contenant le values des champs head, selection et tail? Que vous pouvez faire en utilisant

var myObject = ....// the method with the return statement from your question 
var myArray = [myObject.head, myObject.selection, myObject.tail]; 

Maintenant, si vous voulez que la chaîne complète à nouveau, vous pouvez utiliser

var myText = myArray.join(""); 
Questions connexes