Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze:

JavaScript JavaScript

Aktivity (1)
Avatar
Matyáš Procházka:20.3.2014 20:31

Edit: Promiňte za chybějící titulek

"Objektivní proměnná"

Ahoj,

řeším jeden zákeřný problém a nevím, co s tím...

Mám zhruba tento html code:

<select id="vyber">
    <option value="test1">Test 1</option>
    <option value="test2">Test 2</option>
</select>
<div id="vypsat">
</div>

V JS s Jquery mám zhruba toto:

var test1 = new Array("Bla bla","Bla bla");
var test2 = new Array("Bla bla","Bla bla");

$("#vypsat").text($("#vyber").val()[1]);

A potřeboval bych něco následujícího:
A by se mi v tomto případě vypsalo 2 slovo ze zvolené řady... Jak nějak zajistit objektivní proměnou, která si vezme název ze zvoleného option...

Nyní to prostě vypíše druhé písmeno z hodnoty value.

Nevěděl by si někdo rady?

Editováno 20.3.2014 20:32
 
Odpovědět 20.3.2014 20:31
Avatar
Filip Šohajek
Redaktor
Avatar
Filip Šohajek:20.3.2014 20:34
var test1 = new Array("Bla bla","Bla bla");
var test2 = new Array("Bla bla","Bla bla");

$("#vypsat").text($("#vyber").val("test2"));
 
Nahoru Odpovědět 20.3.2014 20:34
Avatar
Odpovídá na Filip Šohajek
Matyáš Procházka:20.3.2014 20:39

? Nějak moc nechápu, co by to přesně mělo provést? Mě to maximálně vypsalo chybu :D

 
Nahoru Odpovědět 20.3.2014 20:39
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na Matyáš Procházka
Filip Šohajek:20.3.2014 20:42

Aha, to teda nevím. Mně to funguje. Omlouvám se

 
Nahoru Odpovědět 20.3.2014 20:42
Avatar
Odpovídá na Filip Šohajek
Matyáš Procházka:20.3.2014 20:44

A co ti to provede? Já potřebuji, pokud zvolím option třeba "test2", aby to vypsalo nějaké slovo z pole test2, a pokud zvolím jinou možnost, aby to vypsalo slovo z pole se stejným názvem :)

 
Nahoru Odpovědět 20.3.2014 20:44
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na Matyáš Procházka
Filip Šohajek:20.3.2014 20:50

Aha, spatne jsme si rozumeli.

 
Nahoru Odpovědět 20.3.2014 20:50
Avatar
Filip Šohajek
Redaktor
Avatar
Filip Šohajek:20.3.2014 21:07

Tak, byly mensi trable s jquery CDN ale funguje to. Zde to je :

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

        <title></title>
</head>
<body>
<select id="vyber">
    <option value="test1">Test 1</option>
    <option value="test2">Test 2</option>
</select>
<div id="vypsat">
</div>
<script>
var test1 = new Array("Bla bla","Bla bla");
var test2 = new Array("Bla bla","Bla bla");

$("#vypsat").text(window[$("#vyber").val()]);
$("#vyber").change(function(){$("#vypsat").text(window[$("#vyber").val()]);});


</script>
</body>
</html>
Editováno 20.3.2014 21:07
 
Nahoru Odpovědět 20.3.2014 21:07
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Matyáš Procházka
Honza Bittner:22.3.2014 14:07

Co takhle využít objektu. Nevím teď jak se to přesně zapisuje, avšak nějak takto?

var test = {
  jedna: ["bla","haf"],
  dva: ["mnau","béé"]
}

Kde můžeš využít jak test.jedna tak i test[jedna].

? :)

Nahoru Odpovědět 22.3.2014 14:07
Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a zeptat na cokoli se mě můžeš na https://github.com/HoBi/...
Avatar
Odpovídá na Honza Bittner
Matyáš Procházka:23.3.2014 22:22

To, co oba píšete nevystihuje můj problém, tedy pokud jsem špatně nepochopil já..

No takhle já bych přesněji řečeno potřeboval toto:

Opravdu zjednodušeně:

var zvirata = new Array("Pes","Slon","Gepard","Vydra");
var lide = new Array("Spisovatel","Úředník","Policista");

var vybranaSkupina = "zvirata";

var slovo = vybranaSkupina[1];

A vypíše to Slon, protože vybraná skupina má název "zvirata" a to pole se také jmenuje zvirata.... Pokud za proměnou vybranaSkupina dosadim "lide" vezme si to druhou pozici z pole "lide"... A by se vždy, když cokoli dosadím jako hodnotu proměné "vybranaSkupina" stal vlastně její název... a při "vybranaSkupi­na[cislo]" si to vzalo slova z pole s názvem jako má hodnotu proměná "vybranaSkupina"

 
Nahoru Odpovědět 23.3.2014 22:22
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Matyáš Procházka
Honza Bittner:23.3.2014 22:57

Toto funguje :

var obj = {
   zvirata: ["Pes","Slon","Gepard","Vydra"],
   lide: ["Spisovatel","Úředník","Policista"]
};

var vybranaSkupina = "zvirata";

alert( obj[vybranaSkupina][1] );
Nahoru Odpovědět  +1 23.3.2014 22:57
Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a zeptat na cokoli se mě můžeš na https://github.com/HoBi/...
Avatar
Odpovídá na Honza Bittner
Matyáš Procházka:23.3.2014 23:03

Anojo ;)
Zkoušel jsem to před tím a nefungovalo mi to... Asi jsem tam měl chybu :O
Tudíž ti chci moc poděkovat, ulehčí mi to totiž hodně práce :)

 
Nahoru Odpovědět 23.3.2014 23:03
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Matyáš Procházka
Honza Bittner:24.3.2014 9:04

Není zač.

Lepší řešení jsem zatím neviděl, ale toto by mělo býti dostatečné. :)

Nahoru Odpovědět  +1 24.3.2014 9:04
Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a zeptat na cokoli se mě můžeš na https://github.com/HoBi/...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.