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?
<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>
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.
Arend, je code klopt ook niet. Binnen de callback van een event (in jQuery eigenlijk binnen elke callback) zal $(this) altijd naar het huidige element verwijzen. Je hebt je click event op een .click element gezet. Als je dus op eentje klikt (bijv. 'Line Up') zal $(this) verwijzen naar dat .menu element (de li dus). Je kunt dan dus niet nog eens .find('.menu') uitvoeren.
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.
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.