Dlaczego nie wypisuje liczb z przedziału

0

Użytkownik ma podać 2 liczby a następnie wyświetlają mu się liczby z przedziału pomiędzy tymi dwoma liczbami. Dlaczego to nie działa ?

$(document).ready(function(){

    $('#przycisk').click(function(){

        let x=Number($('#pole1').val());
        let y=Number($('#pole2').val());

        if(y>x){

            for(let x;x<y;x++){
                $('#wynik').HTML(x);
            }

        }

    });

});
0

Wrzuć to na http://jsfiddle.net i podeślij link.

1

Proszę bardzo:
https://jsfiddle.net/g8q40wfa/1/

Na czym problem polegał?

$('#wynik').HTML(x);

Ta metoda zastępuje aktualny kod HTML w elemencie. Kiedy używasz tego w pętli, to przy każdej iteracji zawartość elementu zostaje zastąpiona. Ty natomiast potrzebujesz dodać kolejną liczbę do aktualnego kodu HTML. Aby to zrobić, musisz pobrać aktualną wartość elementu

$(element).html();

Wywołanie bez parametru zwróci aktualny kod HTML.

Zastąpiłem kod Twojej pętli w ten sposób:

$('#wynik').html(`${$('#wynik').html()} ${x}`);

Nie jest to może super optymalne rozwiązanie, lecz nie chciałem wprowadzać bałaganu w Twoim kodzie.

Wskazówka numer 1:
$(element).click(callback); - ta metoda jest już przestarzała, radzę wykorzystać $(element).on('event', callback);

Wskazówka numer 2:
$(element).HTML(); - HTML nie jest metodą dla tego elementu, wielkość liter ma znaczenie, wykorzystaj $(element).html();

Edit: Aktualizacja url do fiddle

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0