Ich bin sehr neu in jQuery und versuche, den Buchstaben einer Zeichenfolge anzuzeigen, wenn auf eine Schaltfläche geklickt wird. Ich möchte, dass jedes Mal, wenn auf die Schaltfläche geklickt wird, der angezeigte Wert "b", dann "ba" und dann "bar" ist. Im Moment wird jedoch nur "b" angezeigt, wenn auf die Schaltfläche geklickt wird. Hier ist mein Code - jede Hilfe wäre sehr dankbar!

$(".letter").on('click', function(event){

  var foo = "bar"
  var split = foo.split('');
  $('.answer').val(split[0]);
  split.splice(0,1);


});
0
epg388 5 Dez. 2013 im 00:48

5 Antworten

Beste Antwort

Dieser Code verwendet die Länge der Ausgabe anstelle eines internen Zählers

    var foo = 'bar';
    $(".letter").on('click', function (event) {
        $('.answer').val(foo.substring(0,$('.answer').val().length +1));
    });
0
user3041160 4 Dez. 2013 im 21:03

Warum es überhaupt teilen, machen Sie einfach einen Teilstring mit der Gegenidee

Setze einen Zähler!

    var count = 2;
    $(".letter").on('click', function(event){
      var foo = "bar"
      $('.answer').val(foo.substring(1,count));
      count++
    });
0
JDubTech 4 Dez. 2013 im 20:58

DEMO

Dies hat wenig mit jQuery zu tun. Sie brauchen nur ein bisschen mehr JavaScript - Sie müssen den aktuellen Index irgendwo speichern und in Ihrem Handler erhöhen

var index = -1;
$(".letter").on('click', function(event){
  var foo = "bar"

  if (index == foo.length - 1) return;
  $('.answer').val($('.answer').val() + foo.charAt(++index));
});
2
Adam Rackis 4 Dez. 2013 im 20:55

Sie können foo und split global machen und fertig: D.

var foo = "bar"
var split = foo.split('');

$(".letter").on('click', function(event){

  alert(split[0]);
  split.splice(0,1);


});

Arbeitsbeispiel: jsfiddle

0
Felipe Fonseca 4 Dez. 2013 im 20:53

Setze einen Zähler! Jedes Mal, wenn Sie auf klicken, wird die Teilzeichenfolge-Version angezeigt!

var count = 1;
$(".letter").on('click', function(event){
    var foo = "bar";
    if (count < foo.length) { //set an if so that it stops incrementing
        var split = foo.substr(0,count);
        $('.answer').val(split);
        count++;
    } else {
        $(".answer").val(foo);
    }
});
2
Sterling Archer 4 Dez. 2013 im 20:57