javascript - 用数组中的对象制作表格?

标签 javascript html

我是 javascript 的初学者,我的代码有一点问题。我找到了一个练习并且正在尝试去做。我必须编写一个函数,将变量中的文本插入表中。我从来没有遇到过这样的事情。这个变量看起来像数组中的四个对象。我想在按下按钮时在表格中显示文本。有两个按钮。当我按下“Fizyka”按钮时,我应该看到:

  • Fizyka
  • 奥拉·科瓦尔
  • 埃拉·诺瓦克

当我按“Chemia”时:

  • 化学
  • 阿拉斑羚
  • 乌拉·斯帕克

这是我的代码。我所能编辑的只是功能显示(研究):

<!DOCTYPE html>
<html lang="pl">
 <head>

    <meta charset="utf-8">

 </head>
<body>

<button onclick="show('fizyka')">Fizyka</button>
<button onclick="show('chemia')">Chemia</button>
<div id="list"></div>

    <script>

        var student=[
            {name:"Ola", second_name:"Kowal", study:"fizyka"},
            {name:"Ela", second_name:"Nowak", study:"fizyka"},
            {name:"Ala", second_name:"Goral", study:"chemia"},
            {name:"Ula", second_name:"Szpak", study:"chemia"},
                    ];  

        function show(study)
        {
            if (study==='fizyka')
            {
            document.getElementById("list").innerHTML = "<h2>student.kierunek</h2><ul><li>student.name + " " + student.second_name</li><li>student.name + " " + student.second_name</li></ul>";

            }

            if (study==='chemia')
            {
            document.getElementById("list").innerHTML = "<h2>student.kierunek</h2><ul><li>student.name + " " + student.second_name</li><li>student.name + " " + student.second_name</li></ul>";
            }
        }

    </script>

</body>
</html>

它不工作。 我不知道如何将此变量中的文本插入到表中。

最佳答案

您的代码存在一些问题。我已经编写了一段有效的代码,您可以使用它并激发灵感。

<button onclick="show('fizyka')">Fizyka</button> 
<button onclick="show('chemia')">Chemia</button>
<div id="list"><h2></h2><ul></ul></div>


<script>
    //Student array
    var student=[
        {name:"Ola", second_name:"Kowal", study:"fizyka"},
        {name:"Ela", second_name:"Nowak", study:"fizyka"},
        {name:"Ala", second_name:"Goral", study:"chemia"},
        {name:"Ula", second_name:"Szpak", study:"chemia"},
                ];  

    function show(study)
    {
      console.log('ENTER show('+study+')');
      //Select h2 element 
      var header = document.getElementById("list").firstChild;
      //Set h2 element text
      header.innerHTML = study;

      //Select ul element
      var list = document.getElementById("list").lastChild;
      //Set inner html to empty string to clear the content
      list.innerHTML = "";
      //loop through students and set the appropriate html element values
      for(var i = 0; i < student.length; i++){
        //check whether student[i] studies study which is put as a paramter into the function
        if(student[i].study === study){
          //Create new li element
          var li = document.createElement('li');
          //Into li element add a new text node which contains all data about the student
          li.appendChild(document.createTextNode(student[i].name + ' ' + student[i].second_name));
          //add li element into ul
          list.appendChild(li); 
        }
      }
      console.log('LEAVE show('+study+')');

    }

</script>

关于javascript - 用数组中的对象制作表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34580694/

相关文章:

javascript - 如何增加嵌套的动态值?

javascript - Jquery - 从具有相同特征的多个表单中选择一个表单(及其值)

javascript - 我的 d3 折线图中的画笔功能未按预期工作

javascript - 将主用户迁移到服务主体以在 Power bi Embedded 上进行身份验证

html - 音频标签 GUI 不可见

用于电子邮件的 Html 和 CSS,如何、在哪里?

javascript - 使用 JQuery.throwable 将 div 添加到场景

javascript - 如何从 Javascript 数组中获取最多五个值?

javascript - 在 Ajax 中使用语法荧光笔 - html 和 python 画笔

html - parent 的填充将 child 的边距变成高度扩展