0
votes

Comment fabriquer une table bootstrap cliquable

J'ai une bootstrap comme celle-ci dans la page principale.html:

<table class="table table-striped">
 <thead>
    <tr>
     <th scope="col">#</th>
     <th scope="col">First</th>
     <th scope="col">Last</th>
     <th scope="col">Handle</th>
   </tr>
 </thead>
 <tbody>
  <tr>
    <th scope="row">1</th>
    <td>Mark</td>
    <td>Otto</td>
    <td>@mdo</td>
 </tr>
 <tr>
   <th scope="row">2</th>
   <td>Jacob</td>
   <td>Thornton</td>
   <td>@fat</td>
</tr>
<tr>
  <th scope="row">3</th>
  <td>Larry</td>
  <td>the Bird</td>
  <td>@twitter</td>
</tr>
</tbody>
</table>
  • Lorsque je clique sur une ligne de la table (sur le texte ou même dans l'espace entre deux colonnes), il doit rediriger vers une autre page HTML. LI> ul>

    Comment puis-je faire cela? P> p>


0 commentaires

5 Réponses :


0
votes

Cela peut être fait en utilisant jQuery. Lier un auditeur d'événement en cliquant sur Click of Tr, puis rediriger l'utilisateur si nécessaire.

Votre HTML P>

var table = document.getElementById('js-table');
for(var i = 0; i < table.rows.length; i++) {
  table.rows[i].addEventListener('click', function() {
    document.location.href = "https://google.com"
  });
}


3 commentaires

Pouvons-nous le faire avec JavaScript


Bien sur. J'ai édité la réponse et j'ai ajouté du code pour cela.


Vous devrez ajouter un ID à votre table.



0
votes

Essayez ce code

<!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
    <table class="table table-striped" id="tableId">
     <thead>
        <tr>
         <th scope="col">#</th>
         <th scope="col">First</th>
         <th scope="col">Last</th>
         <th scope="col">Handle</th>
       </tr>
     </thead>
     <tbody>
      <tr>
        <th scope="row">1</th>
        <td>Mark</td>
        <td>Otto</td>
        <td>@mdo</td>
     </tr>
     <tr>
       <th scope="row">2</th>
       <td>Jacob</td>
       <td>Thornton</td>
       <td>@fat</td>
    </tr>
    <tr>
      <th scope="row">3</th>
      <td>Larry</td>
      <td>the Bird</td>
      <td>@twitter</td>
    </tr>
    </tbody>
    </table>

    <script>
        function addRowHandlers() {
            var table = document.getElementById("tableId");
            var rows = table.getElementsByTagName("tr");
            for (i = 0; i < rows.length; i++) {
                var currentRow = table.rows[i];
                var createClickHandler = 
                    function(row) 
                    {
                        return function() { 
                                                var cell = row.getElementsByTagName("td")[0];
                                                var id = cell.innerHTML;
                                                alert("id:" + id);
                                                window.location.href = "http://www.w3schools.com";
                                         };
                    };

                currentRow.onclick = createClickHandler(currentRow);
            }
        }
        window.onload = addRowHandlers();
    </script>
    </body>
    </html>


0 commentaires

0
votes

Vous pouvez également y parvenir à JavaScript sur JavaScript sur TR (Inline): xxx pré>

de cette manière, vous pouvez définir différents liens pour différentes lignes. Veuillez vérifier ci-dessous l'extrait de HTML mis à jour: P>

<table class="table table-striped">
 <thead>
    <tr>
     <th scope="col">#</th>
     <th scope="col">First</th>
     <th scope="col">Last</th>
     <th scope="col">Handle</th>
   </tr>
 </thead>
 <tbody>
  <tr onclick="document.location = 'http://www.google.com';">
    <th scope="row">1</th>
    <td>Mark</td>
    <td>Otto</td>
    <td>@mdo</td>
 </tr>
 <tr onclick="document.location = 'http://www.himanshu.com';">
   <th scope="row">2</th>
   <td>Jacob</td>
   <td>Thornton</td>
   <td>@fat</td>
</tr>
<tr onclick="document.location = '/links.html';">
  <th scope="row">3</th>
  <td>Larry</td>
  <td>the Bird</td>
  <td>@twitter</td>
</tr>
</tbody>
</table>


0 commentaires

0
votes

Veuillez trouver ci-dessous le code qui vous redirigera vers un autre lien en cliquant sur des lignes (sauf la ligne d'en-tête)

Ajouter un événement sur toutes les lignes de la table et exécutez votre tâche. P>

p>

$(function() {
  $('tbody tr').click(function() {
    window.location.href = 'https://www.google.com';
  })
})


0 commentaires

0
votes

Premièrement, je suggère d'ajouter la classe à (donc si vous envisagez d'avoir plusieurs tables dans la page, cela n'affecte pas l'autre table)

alors, je suppose que votre utilisation de jQuery et vous avez des lignes de table dynamiques. xxx


0 commentaires