2016-12-07 3 views
0

рабочий код http://codepen.io/one2gov/pen/XNqyzB?editors=1111 этот код запускает все строки кода, а не только один. Что не так?javascript из textarea n раз

oldVal = $("#fname").val(); 

lines = $("#fname").val().split(';'); 
lines.forEach(function(i, idx, array) { 
    if (idx == lines.length - 1) { 
     return; 
    } 
    element = $("<textarea></textarea>").attr({ 'id': '' + idx + '', 'class': "textar", 'style': "" }).html(idx+1); 

    $("body").append(element) 
}); 

$("#checkBtn").click(function() { 

    $('textarea.textar').each(function(i, obj) { 
     numbers = this.value; 
     numbers = numbers*1; 

     lines.forEach(function(i, idx) { 
     test = lines[idx]; 
      if (idx == lines.length - 1) { 
       return; 
      } 

      for (var i = 0; i < numbers; i++) { 
       //console.log(numbers); 
       eval(test); 

      } 

     }) 
    }); 
}); 

Цель состоит в том, чтобы запустить строки коды, как много раз, как число в текстовом поле слева от линии. Я ожидаю увидеть в консоли первую строку кода один раз, а второй - 2 раза. Но вместо этого я получаю результаты от обоих чисел на всех строках.

Вот ссылка с демо, который работает как надо (но переменные являются поддельными) http://codepen.io/one2gov/pen/WoJyvB?editors=1011

ответ

1

checkBtn Изменить нажмите на:

$("#checkBtn").click(function() { 
    $('textarea.textar').each(function(i, obj) { 
     var numbers = this.value; 
     numbers = numbers*1; 

     // get only the current line 
     var test = lines[i]; 

     // execute current line 'numbers' times 
     for (var j = 0; j < numbers; j++) { 
      eval(test); 
     } 

    }); 
}); 
+0

Так .. я сделал это труднее без причины. Это сделало это, я буду принимать ваш ответ, когда это позволит мне. Спасибо, Бруно! – one2gov

+0

Вы хорошо! –

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