2017-04-07 4 views
0

Ich kodiere meine eigene Website und ich benutze jQuery damit. Aber ich bin ein Anfänger mit jQuery und ich habe eine kleine Frage. Ich habe in meinem HTML-doc:Wenn Sie darauf klicken, fügen Sie eine Klasse zu einer bestimmten Klasse hinzu

<ol class="steps"> 
      <li><span class="step">Het verkrijgen van uw wensen. </span><span class="stepText">In deze stap komen we tot een overeenstemming hoe de website eruit zal komen te zien. Dit zal te paard gaan met een of meerdere tekeningen, om een zo goed mogelijk beeld te krijgen van wat u wilt met uw website.</span> 
      </li> 
      <li><span class="step">De offerte. </span><span class="stepText">Hier krijgt u de offerte toegestuurd met alle bijkomende informatie.</span> 
      </li> 
</ol> 

(Dies ist eine verkürzte Version, ich habe es mit 6 <li> Tags, so geben sie alle verschiedenen Klassen ist nicht eine große Lösung ...)

Was ich jetzt machen will, ist wenn zB Der erste Bereich (Klasse = Schritt) wird angeklickt, der daneben liegende Bereich (Klasse = SchrittText) muss eine neue Klasse haben. Das ist mein jQuery-Code:

$(document).ready(function() { 
    $(".step").click(function() { 

     $(this).find($(".stepText"))addClass(".stepTextV"); 
     $(this).find($(".stepTextV"))removeClass(".stepText"); 

      // what I tried before: 
      $(".stepText", this).addClass(".stepTextV"); 
      $(".stepTextV", this).removeClass(".stepText"); 
    }); 
}); 

Was mache ich falsch?

Vielen Dank im Voraus,
Brent M.

+0

Sie verpassen '.' Zeichen vor' addClass' und 'removeClass'. – Barmar

+0

Verwenden Sie '.next' anstelle von' .find'! –

+0

'.find()' dient zum Suchen von untergeordneten Elementen. '.stepText' ist kein Kind von' .step'. – Barmar

Antwort

3

Ihre Syntax ist falsch das alles ist, plus next() ist dein Freund hier :) ....

$(document).ready(function() { 
 
    $(".step").click(function() { 
 
    $(".stepTextV").removeClass("stepTextV"); 
 
    $(this).next(".stepText").addClass("stepTextV"); //You might also consider toggleClass 
 
    }); 
 
});
.step {font-weight: bold; } 
 
.stepTextV {background: pink; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ol class="steps"> 
 
    <li><span class="step">Het verkrijgen van uw wensen. </span><span class="stepText">In deze stap komen we tot een overeenstemming hoe de website eruit zal komen te zien. Dit zal te paard gaan met een of meerdere tekeningen, om een zo goed mogelijk beeld te krijgen van wat u wilt met uw website.</span> 
 
    </li> 
 
    <li><span class="step">De offerte. </span><span class="stepText">Hier krijgt u de offerte toegestuurd met alle bijkomende informatie.</span> 
 
    </li> 
 
</ol>

+1

Sie sollten CSS zu Ihrem Schnipsel so hinzufügen Sie können die Wirkung der addClass – Barmar

+0

@Barmar sehen - haha ​​ich war buchstäblich nur daran arbeiten! :) – mayersdesign

+0

hübsche Farbe :) Ich denke nie, Rosa zu verwenden, ich gehe immer mit langweilig grün oder blau. – Barmar

0
$(document).ready(function() { 
$(".step").click(function() { 
    $(this).siblings('.step').children('.stepText').removeClass('stepTextV'); 
    $(this).children('.stepText').addClass('stepTextV'); 
}); 

});

0

Dies sollte funktionieren:

$(document).ready(function() { 
    $(".step").click(function() { 
     $(this).next(".stepText") 
      .addClass("stepTextV") 
      .removeClass("stepText"); 
    }); 
}); 
Verwandte Themen