如何将 Html 表更改为链接

Posted

技术标签:

【中文标题】如何将 Html 表更改为链接【英文标题】:How to change Html table to Link 【发布时间】:2020-02-24 22:55:24 【问题描述】:

我是 html 新手。 我正在分享我的 html 代码,该代码从服务器获取 Json 数据并以 Html 表格格式显示。

您能否更改我的 html 代码,使其具有 button 在视频链接和视频图像之间,当我单击该按钮时,它会播放具有同一行视频 ID 的相应 youtube 视频。

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"> </script>

<script>

    $(function() 


   var people = [];

   $.getJSON('https://api.myjson.com/bins/hy7g0', function(data) 
       $.each(data.videoLectureListing, function(i, f) 
          var tblRow = "<tr>" + "<td>" + f.Id + "</td>" +
           "<td>" + f.videoName + "</td>" + "<td>" + f.date + "</td>" + "<td>" + f.time + "</td>" + "<td>" + f.video + "</td>" + "<td>" + f.image + "</td>" +
           "<td>" + f.videoDuration + "</td>" + "<td>" + f.liveStatus + "</td>" + "<td>"+ "</tr>"
           $(tblRow).appendTo("#userdata tbody");
     );

   );

);
</script>
</head>

<body>

<div class="wrapper">
<div class="profile">
   <table id= "userdata" border="25">
  <thead>
            <th>ID</th> 
            <th>VIDEO NAME</th>
            <th>DATE</th>
            <th>TIME</th>
			<th>VIDEO LINK</th>
			<th>VIDEO IMAGE</th>
            <th>DURACTION</th>
            <th>LIVE STATUS</th>
        </thead>
      <tbody>

       </tbody>
   </table>

</div>
</div>

</body>
</html>

我在互联网上尝试了很多,但找不到任何相关信息,请认真对待并帮助我。谢谢

【问题讨论】:

欢迎来到 Stack Overflow。我们不是代码编写服务,所以不,我们不会只是更新您的代码以使其执行您希望它执行的操作。我们要求您在此处发布之前进行研究并尝试解决方案,然后,如果您确实发布,请发布特定问题以及任何尝试你成功了。 可以的话请试一试 不,我很抱歉,但你来错地方了。 嘿@Aman,你离得很近。搜索一些html标签,比如A和IMG 【参考方案1】:

我有一些时间可以打发,所以这里有一个解决您问题的方法:

        const keys = ['Id', 'videoName', 'date', 'time', 'videoLink', 'image', 'videoDuration', 'liveStatus'];
    var tableBody = document.getElementById('myTableBody');

    fetch('https://api.myjson.com/bins/hy7g0').then(response => 
        return response.json().then(data => 
            buildTable(data.videoLectureListing);
        )
    );

    function buildTable(fullData) 
        if (fullData) 
            return fullData.forEach(videoData => 
                let newRow = buildRow(videoData);
                tableBody.appendChild(newRow)
            )
        
    

    function buildRow(videoData) 
        let newRow = document.createElement('tr');
        keys.forEach(key => 
            let domNode = undefined;
            if (key === 'videoLink') 
                domNode = buildAButton(videoData[key]);
             else if (key === 'image') 
                domNode = buildAImage(videoData[key]);
             else 
                domNode = videoData[key] ? videoData[key] : ' - ';
            
            domNode = buildAColumn(domNode);
            newRow.appendChild(domNode);
        );
        return newRow;
    

    function buildAButton(videoId) 
        let newButton = document.createElement('button');
        newButton.innerHTML = 'Watch';
        newButton.onClick = () => window.location.href = `url/path/$id`;
        return newButton;
    

    function buildAColumn(object) 
        let newColumn = document.createElement('td');
        if (typeof object === 'string') 
            newColumn.innerHTML = object;
         else 
            newColumn.appendChild(object);
        
        return newColumn;
    

    function buildAImage(source) 
        let newImage = document.createElement('img');
        newImage.src = source;
        return newImage;
    

【讨论】:

请不要提供不属于这里的问题的答案,因为它只会鼓励更多相同的问题。 我可能会这样做,但我从这个网站得到了很多帮助,我试图尽可能多地回馈它。我不想鼓励人们让我们做他们的工作,但我尽量提供帮助。但是我给出的代码应该被重构。它可以使用 switch() 语句而不是 if else 结构。函数名称不好,与书面字符串进行比较并且没有常量是一个坏主意。阿曼还有很多工作要做,但这是一个很好的线框图,如何实现他正在寻找的东西。干杯,祝斯科特愉快! 我们都非常感谢您愿意提供帮助。但是,最后,我们确实有我们尝试遵循的网站指南,以使我们的网站尽可能有用。当我们首先回答不属于这里的问题时,我们会鼓励更多此类问题,而在您知道之前,Stack Overflow 并不是它应有的高质量知识库 @varjod 先生,正如我所说,我是编程新手,所以请您将代码放入我的 html 代码并粘贴。这样当我在浏览器中运行此页面时,它会给出所需的结果 亲爱的阿曼,我不这样做 :) 你可以试着弄清楚,因为代码很容易解释 :)

以上是关于如何将 Html 表更改为链接的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 将链接表更改为 AWS MySQL Db 会减慢表单/报告的速度

如何将链接文本更改为 HTML 中的图像

React on Rails - 如何将登录链接更改为注销链接?

Oracle:将范围分区更改为哈希分区

使用 ng-repeat 将静态表更改为动态表

加载包含链接的 sql server 表的 mdb 时 ms 访问崩溃