Change class with javascript for row when number of rows is unknown



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I want to have a 'popup' div whenever I click on a row. I tried to do this with javascript to toggle a class.
We are filling a table with WordPress custom post types and the number of rows are therefor unknown.



The id "bedrijfsinfo-x" is being generated correctly, and function counts the right amount of rows. It still toggles the class on all divs instead of just the one associated with the row I clicked on.



Any help would be greatly appreciated!



<?php $counter = 1 ; ?>
<?php
// Als er berichten zijn gevonden.
if ( $posts->have_posts() )
// While loop om alle berichten op te halen
while ( $posts->have_posts() ) :
$posts->the_post();
global $post;
?>

<tr id="su-post-<?php the_ID(); ?>" class="su-post contracten">
<td class="meta_data" onclick="showInfo()"><?php bedrijfsnaam(); ?></td>
<td><?php naam_contactpersoon(); ?></td>
<td><?php url(); ?></td>
<td><?php start(); ?></td>
<td><?php eind(); ?></td>
<td><?php frequentie(); ?></td>
<td><?php datum_onderhoud(); ?></td>
</tr>
<div id="bedrijfsinfo-<?php echo $counter?>" class="infobox">
<p>Bedrijfsinformatie<br><?php bedrijfsnaam() . url() . start() . eind(); ?></p>
<button onclick="showInfo()"><p class="button">Sluiten</p></button>
</div>
<?php $counter = $counter + 1; ?>
<?php endwhile;

<script>

function showInfo()
var tr_count = document.getElementsByTagName("tr").length;
for (var i = 1; i < tr_count; i++)
var popup = document.getElementById("bedrijfsinfo-"+ i);
popup.classList.toggle("show");



</script>









share|improve this question




























    0















    I want to have a 'popup' div whenever I click on a row. I tried to do this with javascript to toggle a class.
    We are filling a table with WordPress custom post types and the number of rows are therefor unknown.



    The id "bedrijfsinfo-x" is being generated correctly, and function counts the right amount of rows. It still toggles the class on all divs instead of just the one associated with the row I clicked on.



    Any help would be greatly appreciated!



    <?php $counter = 1 ; ?>
    <?php
    // Als er berichten zijn gevonden.
    if ( $posts->have_posts() )
    // While loop om alle berichten op te halen
    while ( $posts->have_posts() ) :
    $posts->the_post();
    global $post;
    ?>

    <tr id="su-post-<?php the_ID(); ?>" class="su-post contracten">
    <td class="meta_data" onclick="showInfo()"><?php bedrijfsnaam(); ?></td>
    <td><?php naam_contactpersoon(); ?></td>
    <td><?php url(); ?></td>
    <td><?php start(); ?></td>
    <td><?php eind(); ?></td>
    <td><?php frequentie(); ?></td>
    <td><?php datum_onderhoud(); ?></td>
    </tr>
    <div id="bedrijfsinfo-<?php echo $counter?>" class="infobox">
    <p>Bedrijfsinformatie<br><?php bedrijfsnaam() . url() . start() . eind(); ?></p>
    <button onclick="showInfo()"><p class="button">Sluiten</p></button>
    </div>
    <?php $counter = $counter + 1; ?>
    <?php endwhile;

    <script>

    function showInfo()
    var tr_count = document.getElementsByTagName("tr").length;
    for (var i = 1; i < tr_count; i++)
    var popup = document.getElementById("bedrijfsinfo-"+ i);
    popup.classList.toggle("show");



    </script>









    share|improve this question
























      0












      0








      0








      I want to have a 'popup' div whenever I click on a row. I tried to do this with javascript to toggle a class.
      We are filling a table with WordPress custom post types and the number of rows are therefor unknown.



      The id "bedrijfsinfo-x" is being generated correctly, and function counts the right amount of rows. It still toggles the class on all divs instead of just the one associated with the row I clicked on.



      Any help would be greatly appreciated!



      <?php $counter = 1 ; ?>
      <?php
      // Als er berichten zijn gevonden.
      if ( $posts->have_posts() )
      // While loop om alle berichten op te halen
      while ( $posts->have_posts() ) :
      $posts->the_post();
      global $post;
      ?>

      <tr id="su-post-<?php the_ID(); ?>" class="su-post contracten">
      <td class="meta_data" onclick="showInfo()"><?php bedrijfsnaam(); ?></td>
      <td><?php naam_contactpersoon(); ?></td>
      <td><?php url(); ?></td>
      <td><?php start(); ?></td>
      <td><?php eind(); ?></td>
      <td><?php frequentie(); ?></td>
      <td><?php datum_onderhoud(); ?></td>
      </tr>
      <div id="bedrijfsinfo-<?php echo $counter?>" class="infobox">
      <p>Bedrijfsinformatie<br><?php bedrijfsnaam() . url() . start() . eind(); ?></p>
      <button onclick="showInfo()"><p class="button">Sluiten</p></button>
      </div>
      <?php $counter = $counter + 1; ?>
      <?php endwhile;

      <script>

      function showInfo()
      var tr_count = document.getElementsByTagName("tr").length;
      for (var i = 1; i < tr_count; i++)
      var popup = document.getElementById("bedrijfsinfo-"+ i);
      popup.classList.toggle("show");



      </script>









      share|improve this question














      I want to have a 'popup' div whenever I click on a row. I tried to do this with javascript to toggle a class.
      We are filling a table with WordPress custom post types and the number of rows are therefor unknown.



      The id "bedrijfsinfo-x" is being generated correctly, and function counts the right amount of rows. It still toggles the class on all divs instead of just the one associated with the row I clicked on.



      Any help would be greatly appreciated!



      <?php $counter = 1 ; ?>
      <?php
      // Als er berichten zijn gevonden.
      if ( $posts->have_posts() )
      // While loop om alle berichten op te halen
      while ( $posts->have_posts() ) :
      $posts->the_post();
      global $post;
      ?>

      <tr id="su-post-<?php the_ID(); ?>" class="su-post contracten">
      <td class="meta_data" onclick="showInfo()"><?php bedrijfsnaam(); ?></td>
      <td><?php naam_contactpersoon(); ?></td>
      <td><?php url(); ?></td>
      <td><?php start(); ?></td>
      <td><?php eind(); ?></td>
      <td><?php frequentie(); ?></td>
      <td><?php datum_onderhoud(); ?></td>
      </tr>
      <div id="bedrijfsinfo-<?php echo $counter?>" class="infobox">
      <p>Bedrijfsinformatie<br><?php bedrijfsnaam() . url() . start() . eind(); ?></p>
      <button onclick="showInfo()"><p class="button">Sluiten</p></button>
      </div>
      <?php $counter = $counter + 1; ?>
      <?php endwhile;

      <script>

      function showInfo()
      var tr_count = document.getElementsByTagName("tr").length;
      for (var i = 1; i < tr_count; i++)
      var popup = document.getElementById("bedrijfsinfo-"+ i);
      popup.classList.toggle("show");



      </script>






      javascript jquery wordpress function






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 15 '18 at 10:49









      AnnerdAnnerd

      1




      1






















          1 Answer
          1






          active

          oldest

          votes


















          1














          Your showInfo function iterates over the entire number of rows. Sounds like that's not what you want. Maybe try passing in the id of the thing clicked?



          <td class="meta_data" onclick="showInfo(<?php $counter; ?>)"><?php bedrijfsnaam(); ?></td>
          // ...
          <button onclick="showInfo(<?php $counter; ?>)"><p class="button">Sluiten</p></button>

          function showInfo(i)
          var popup = document.getElementById("bedrijfsinfo-"+ i);
          popup.classList.toggle("show");






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53317746%2fchange-class-with-javascript-for-row-when-number-of-rows-is-unknown%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            Your showInfo function iterates over the entire number of rows. Sounds like that's not what you want. Maybe try passing in the id of the thing clicked?



            <td class="meta_data" onclick="showInfo(<?php $counter; ?>)"><?php bedrijfsnaam(); ?></td>
            // ...
            <button onclick="showInfo(<?php $counter; ?>)"><p class="button">Sluiten</p></button>

            function showInfo(i)
            var popup = document.getElementById("bedrijfsinfo-"+ i);
            popup.classList.toggle("show");






            share|improve this answer



























              1














              Your showInfo function iterates over the entire number of rows. Sounds like that's not what you want. Maybe try passing in the id of the thing clicked?



              <td class="meta_data" onclick="showInfo(<?php $counter; ?>)"><?php bedrijfsnaam(); ?></td>
              // ...
              <button onclick="showInfo(<?php $counter; ?>)"><p class="button">Sluiten</p></button>

              function showInfo(i)
              var popup = document.getElementById("bedrijfsinfo-"+ i);
              popup.classList.toggle("show");






              share|improve this answer

























                1












                1








                1







                Your showInfo function iterates over the entire number of rows. Sounds like that's not what you want. Maybe try passing in the id of the thing clicked?



                <td class="meta_data" onclick="showInfo(<?php $counter; ?>)"><?php bedrijfsnaam(); ?></td>
                // ...
                <button onclick="showInfo(<?php $counter; ?>)"><p class="button">Sluiten</p></button>

                function showInfo(i)
                var popup = document.getElementById("bedrijfsinfo-"+ i);
                popup.classList.toggle("show");






                share|improve this answer













                Your showInfo function iterates over the entire number of rows. Sounds like that's not what you want. Maybe try passing in the id of the thing clicked?



                <td class="meta_data" onclick="showInfo(<?php $counter; ?>)"><?php bedrijfsnaam(); ?></td>
                // ...
                <button onclick="showInfo(<?php $counter; ?>)"><p class="button">Sluiten</p></button>

                function showInfo(i)
                var popup = document.getElementById("bedrijfsinfo-"+ i);
                popup.classList.toggle("show");







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 15 '18 at 10:57









                puddipuddi

                75139




                75139





























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53317746%2fchange-class-with-javascript-for-row-when-number-of-rows-is-unknown%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Use pre created SQLite database for Android project in kotlin

                    Darth Vader #20

                    Ondo