0

我有这个代码发送用户输入的值......信息和数字作为数组发送并推送到另一个数组中,然后我在动态创建的列表元素中显示文本并在跨度元素中显示数字...... .

var button = $('#add');
    button.click(function() 
    {
        var filmnamn = $('#name');
        var filmnamnet = filmnamn.val();
        var betyg = $('#star');
        var betyget = betyg.val();
        betyget = Number(betyget);

        if(filmnamnet == 0)
        {
            $('#name').css('background-color', 'red');

        }
        if(betyget == 0)
        {
            $('#star').css('background-color', 'red');

        }
        if(betyget == 0 || filmnamnet == 0)
        {
            alert("Vänligen fyll i fälten korrekt");

        }
        else
        {
            var array = new Array();
            array.unshift(betyget);
            array.unshift(filmnamnet);
            film_array.unshift(array);
            betyg_array.unshift(array);
            updateFilmList();

        }

    });



    var film_list = $("#filmlista");
    var film_array = new Array();

function updateFilmList()
{
        document.getElementById("name").value = '';
        document.getElementById("star").value = 0;
        var filmen = film_array[0][0];
        var grade = film_array[0][1];
        var element = '<li class="lista">' + filmen + '<span class="betyg">'+ grade +'</span></li>';
        film_list.append(element);
        changeNumber();

}

最后我有一个功能,我想将 span 元素中的数字更改为数字显示的星星数量......这工作正常,但仅适用于第一个创建的列表和 span 元素,当我尝试添加更多时listelements 数字不会显示为星号,有人可以告诉我为什么会发生这种情况并指出解决问题的方向吗?

function changeNumber(){
    var elements= document.getElementsByClassName("betyg");    
    for (var i=0; i<elements.length; i++) {                     
        var element = elements[i];
        var length = parseInt(element.innerHTML);
        var x=Array(length+1).join("*");
        element.innerHTML=x;
    }
}
4

0 回答 0