jquery variabele wordt niet goed doorgegeven
ik heb het volgende script waarbij ik wil dat hij de waarde laat zien van het element waar ik op druk. dit gebeurd deels. Hij laat een waarde zien maar dat is de waarde 3. ook als ik op de eerste of de tweede druk.
hebben jullie enig idee waarom?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div id="info">
</div>
<ul>
<li class="menu" value="1">Algemene informatie</li>
<li class="menu" value="2">Line up</li>
<li class="menu" value="3">Locatie</li>
</ul>
<script>
$(document).ready(function(e) {
$(".menu").click(function() {
var info = $(this).attr("value");
if (info = "1") { $("#info").html(info); };
if (info = "2") { $("#info").html(info); };
if (info = "3") { $("#info").html(info); };
});
});
</script>
</div>
<ul>
<li class="menu" value="1">Algemene informatie</li>
<li class="menu" value="2">Line up</li>
<li class="menu" value="3">Locatie</li>
</ul>
<script>
$(document).ready(function(e) {
$(".menu").click(function() {
var info = $(this).attr("value");
if (info = "1") { $("#info").html(info); };
if (info = "2") { $("#info").html(info); };
if (info = "3") { $("#info").html(info); };
});
});
</script>
Dit: if (info == "3") controleert of info gelijk is aan "3"
Jij gebruikt de eerste, maar ik denk (lees: weet zeker) dat je de tweede moet hebben.
ik heb beide opties opnieuw geprobeerd maar bij beide opties geeft hij niets weer:s
Je moet niet 'beide' opties proberen, want de eerste is duidelijk niet de goede. Je wil een vergelijking maken en een vergelijking maak je met == of ===. Dus laat eens zien wat je dan geprobeerd hebt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div id="info">
</div>
<ul>
<li class="menu" value="1">Algemene informatie</li>
<li class="menu" value="2">Line up</li>
<li class="menu" value="3">Locatie</li>
</ul>
<script>
$(document).ready(function(e) {
$(".menu").click(function() {
var info = $(this).find(".menu").attr("value");
if (info === "1") { $("#info").html(info); };
if (info === "2") { $("#info").html(info); };
if (info === "3") { $("#info").html(info); };
});
});
</script>
</div>
<ul>
<li class="menu" value="1">Algemene informatie</li>
<li class="menu" value="2">Line up</li>
<li class="menu" value="3">Locatie</li>
</ul>
<script>
$(document).ready(function(e) {
$(".menu").click(function() {
var info = $(this).find(".menu").attr("value");
if (info === "1") { $("#info").html(info); };
if (info === "2") { $("#info").html(info); };
if (info === "3") { $("#info").html(info); };
});
});
</script>
nu wordt er niets in de div weergegeven.
bedankt voor je snelle reactie erwin
Tevens is wat je nu hebt fout, een list item (<li>) element kan nooit een value attribute hebben.
Naast wat Wouter volkomen terecht zegt, kan je beter niet 3x een if statement doen, maar een if else constructie. Je wil er namelijk altijd maar 1 tonen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div id="info">
</div>
<ul>
<li class="menu" value="1">Algemene informatie</li>
<li class="menu" value="2">Line up</li>
<li class="menu" value="3">Locatie</li>
</ul>
<script>
$(document).ready(function(e) {
$(".menu").click(function() {
var info = $(this).attr("value");
if (info === "1") {
$("#info").html(info);
} else if (info === "2") {
$("#info").html(info);
} else {
$("#info").html(info);
};
});
});
</script>
</div>
<ul>
<li class="menu" value="1">Algemene informatie</li>
<li class="menu" value="2">Line up</li>
<li class="menu" value="3">Locatie</li>
</ul>
<script>
$(document).ready(function(e) {
$(".menu").click(function() {
var info = $(this).attr("value");
if (info === "1") {
$("#info").html(info);
} else if (info === "2") {
$("#info").html(info);
} else {
$("#info").html(info);
};
});
});
</script>
hij werkt nu wel gelukkig. Een hele simpele if else constructie inderdaad.
wouter:
je hebt helemaal gelijk ik had het verkeerd gelezen je kunt value wel gebruiken bij de <ol> tag. dus in dit geval maak ik een eigen waarde aan.
bedankt voor de reacties