添加href以从Firestore自动生成数据表

时间:2020-03-09 09:30:34

标签: javascript jquery html firebase google-cloud-firestore

我想为表中的不同tds分配不同的href,以便根据从firestore提取的数据自动生成所述tds。

这是我的oferta.js,我可以从firestore检索数据而不会出现问题,但是我真的不知道如何为td“ titulo”分配不同的href,我尝试使用锚点,但是结果在每个连续的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/bulma@0.8.0/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”,这可能吗?如果我不表达自己的意思,对不起清晰

3 个答案:

答案 0 :(得分:0)

只需将元素的href设置为URL的变量即可:

 let img = new Image();
img.onload = function() {
  context.drawImage(img, 0, 0);
};
img.src =
  "img.png";

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以做到

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

<td><a href="http://your-domain.com/${oferta.data_id_or_any_other_field}">${oferta.titulo}</a></td>