2013-12-04 4 views
0

Я очень новичок в jQuery, и я пытаюсь отобразить букву строки при нажатии кнопки. Мне бы хотелось, чтобы каждый раз, когда нажимается кнопка, отображается значение «b», затем «ba», затем «bar», но прямо сейчас, когда нажимается кнопка, единственное, что отображается, это «b». Вот мой код - любая помощь будет принята с благодарностью!Показать каждый символ строки при нажатии кнопки

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

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


}); 

ответ

0

Это использование кода длина вывода вместо внутреннего счетчика

var foo = 'bar'; 
    $(".letter").on('click', function (event) { 
     $('.answer').val(foo.substring(0,$('.answer').val().length +1)); 
    }); 
+0

Это сработало лучше всего с тем, что мне нужно было сделать - спасибо! – epg388

2

DEMO

Это имеет мало общего с JQuery. Вам просто нужно немного больше JavaScript - вам нужно сохранить текущий индекс где-то, и увеличить его в обработчике

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

Установить счетчик! Каждый раз, когда вы нажимаете, он отображает подстрочную версию!

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); 
    } 
}); 
0

Вы можете сделать Foo и разделить глобальные и вы сделали: D

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

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

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


}); 

Рабочий пример: jsfiddle

0

Почему даже разбить его, просто сделать подстроку с встречным идеей

Установите счетчик!

var count = 2; 
    $(".letter").on('click', function(event){ 
     var foo = "bar" 
     $('.answer').val(foo.substring(1,count)); 
     count++ 
    }); 
+0

Почему вы начинаете индекс на 1? –

Смежные вопросы