0

我动态创建此列表元素,当单击按钮时,用户输入的信息会显示在其中,“信息”是文本,应该按原样显示,但“等级”是一个数字,我想用函数 changeNumber() 但我是 javascript 新手,不知道如何制作这个函数,任何人都可以提出建议或指出正确的方向吗?

    var list = $("#filmlista");
    var list_array = new Array();

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

}

我应该使用innerHTML 吗?我不明白它是如何工作的?如果我必须将许多不同的数字替换为数字的符号数量,我该如何使用替换方法?

例如,如果数字是 5,它应该显示为:*****,如果数字是 3,则显示为:***等等

4

3 回答 3

1

这是一些应该可以解决问题的代码:

将此函数添加到您的脚本中。

function changeNumber(number) {
    var finalProduct = "";

    for (var i = 0; i < number; i++) {
        finalProduct += "*";
    }

    return finalProduct;
}

用此代码替换 updateFilmsList。

document.getElementById("name").value = '';
document.getElementById("star").value = 0;
var listan = list_array[0][0];
var grade = changeNumber(list_array[0][1]);
var element = '<li class="lista">' + list + '<span class="grade">'+ grade +'</span></li>';

list.append(element);
于 2013-03-17T23:45:31.510 回答
0

看起来您正在尝试做类似 PHP 的str_repeat. 在这种情况下,str_repeat从 PHPJS看一下

于 2013-03-17T23:44:25.693 回答
0

除了循环之外,还有其他选项:

function charString(n, c) {
  n = n? ++n : 0;
  return new Array(n).join(c);
}

charString(3, '*'); // ***

您可以使用 innerHTML 来设置元素的文本内容,前提是所有文本都不会被误认为是标记。否则,适当设置 textContent(符合 W3C)或 innerText(IE 专有但广泛实施)属性。

于 2013-03-18T00:18:42.930 回答