javascript - 添加 href 以从 firestore 自动生成数据表

标签 javascript jquery html firebase google-cloud-firestore

我想将不同的 href 分配给表中的不同 td,该表根据从 firestore 提取的数据自动生成所述 td。

这是我的 oferta.js,我可以毫无问题地从 firestore 检索数据,但我真的不知道如何为 td“titulo”分配不同的 href,我尝试使用 anchor ,但结果是这样在每个连续的td中建立相同的URL时,我该怎么做才能避免这个问题?提前感谢!

const ofertaList = document.querySelector('#ofertaLista');


const setupOferta = (data) => {

    let html = '';

    data.forEach(doc => {
      const oferta = doc.data();

      const td =`
        <tr>
          <td><a href="google.com">${oferta.titulo}</a></td>
          <td>${oferta.tipo}</td>
          <td>${oferta.fecha}</td>
          <td>${oferta.areaConocimiento}</td>
          <td>${oferta.cupoLimitado}</td>
        </tr>

      `;
      html += td

    });

    ofertaList.innerHTML = html;
}


db.collection('oferta').get().then((snapshot) =>{

 setupOferta(snapshot.docs)


});


编辑

这是我的 oferta.html

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Oferta</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
        <link href="https://fonts.googleapis.com/css?family=Questrial&display=swap" rel="stylesheet">
    <!-- Bulma Version 0.8.x-->
    <link rel="stylesheet" href="https://unpkg.com/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ceacbba2a3af8efee0f6e0fe" rel="noreferrer noopener nofollow">[email protected]</a>/css/bulma.min.css" />
    <link rel="stylesheet" type="text/css" href="css/login.css">


</head>

<body>

    <section class="hero is-info is-bold is-fullhd">
        <div class="hero-body">
            <nav class="navbar is-info">
                <a class="navbar-item" href="https://balsamiq.cloud/sb17nzh/p8yk3ts/r2278">
                    <img src="https://bulma.io/images/bulma-logo.png" width="112" height="28">
                </a>
                <div class="container">
                    <div class="navbar-brand">
                        <h1 class="title">
                            CAEDI
                        </h1>  
                    </div>
                </div>
            </nav>
        </div>
    </section>

   <div id="main">
         <section class="hero is-light">
            <div class="hero-body">
                <div class="container">
                    <h1 class="title">
                        Oferta
                    </h1>
                </div>
            </div>
        </section>

 <div class="container">
      <input class="input" type="text" name="" id="textBoxSearch" placeholder="Buscar" />
      <br /><br />

    </div>

        <section class="section">
            <div class="container">
                <div class="columns">
                    <div class="column is-12">
                        <div>
                        <table id="fullfeatures" class="table is-striped is-bordered" cellspacing="0" width="100%">
                            <thead>
                                <tr id="tr" >
                                    <th>Título</th>
                                    <th>Tipo</th>
                                    <th>Fecha</th>
                                    <th>Área de conocimiento</th>
                                    <th>Cupo limitado</th>
                                </tr>
                            </thead>
                            <tbody id="ofertaLista"></tbody>

                        </table>
                        </div>
                    </div>
                </div> 
            </div>
        </section>






    <footer class="footer has-background-info is-mobile is-fullhd">
        <div class="container">
            <div class="columns is-mobil">
                <div class="column is-half-fullhd">
                    <h1 class="title has-text-left">
                        Contacto
                    </h1>
                    <h2 class="subtitle has-text-left">
                        Direccion, correo electronico, telefono
                    </h2>
                </div>
            <div class="column is-half-fullhd">
                    <h2 class="subtitle has-text-right">
                        Powered by (c) CAEDI
                    </h2>
            </div>
        </div>
    </footer>

<script src="https://www.gstatic.com/firebasejs/7.8.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.8.1/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.8.1/firebase-firestore.js"></script>



<script>

  var firebaseConfig = {
    apiKey: "AIzaSyA0Rl0WAmrpfxPZsWwc_P-AiHg44K8e05c",
    authDomain: "caedi-fd241.firebaseapp.com",
    databaseURL: "https://caedi-fd241.firebaseio.com",
    projectId: "caedi-fd241",

  };
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);




  const aut = firebase.auth();
  const db = firebase.firestore();


</script>

    <script async type="text/javascript" src="js/bulma.js"></script>
    <script src="https://unpkg.com/bulma-modal-fx/dist/js/modal-fx.min.js"></script> 
    <script async type="text/javascript" src="js/oferta.js"></script>








</body>

</html>

enter image description here

这是最终结果,我想为每个“Titulo”分配不同的 href,但这样做

<td><a href="google.com">${oferta.titulo}</a></td>

发生这种情况

enter image description here

我想在“Historia del arte”中添加一个 href="historia.html",在“Matematicas 1”中添加一个 href="matematicas.html",可以吗?如果我没有表达自己的意思,抱歉清晰

最佳答案

<td><a href="${oferta.href}">${oferta.titulo}</a></td>

关于javascript - 添加 href 以从 firestore 自动生成数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60597734/

相关文章:

javascript - Blender 的 TypeError : vertices is undefined - three. js 导出器

javascript - 如何映射来自 REST 调用的响应?

javascript - 模板内的按钮从不调用处理程序

c# - 文本框中的不同字符字体​​颜色

javascript - morris.js 水平条形图

javascript - 如何使用phonegap在android中调用asp.net webservice

javascript - 将 jQuery 验证器的 valid() 或 element() 方法与远程方法一起使用

javascript - 如何使用 css 上的 "auto"值检查真正的宽度

html - XSL - 对于每个不工作

java - Jsoup 多个连接 - 使用已解析的 URL 元素