当行数未知时,使用 javascript 更改行的类

Posted

技术标签:

【中文标题】当行数未知时,使用 javascript 更改行的类【英文标题】:Change class with javascript for row when number of rows is unknown 【发布时间】:2019-04-18 10:55:12 【问题描述】:

每当我点击一行时,我都希望有一个“弹出”div。我试图用javascript来切换一个类。 我们正在使用 WordPress 自定义帖子类型填充表格,因此行数未知。

id“bedrijfsinfo-x”正在正确生成,并且函数计算了正确的行数。它仍然会切换所有 div 上的类,而不仅仅是与我单击的行关联的类。

任何帮助将不胜感激!

<?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>

【问题讨论】:

【参考方案1】:

您的showInfo 函数会遍历整个行数。听起来那不是你想要的。也许尝试传入点击的东西的 id?

<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");

【讨论】:

以上是关于当行数未知时,使用 javascript 更改行的类的主要内容,如果未能解决你的问题,请参考以下文章

当行数大于 1.000.000 时,Oracle APEX 呈现数据的速度变慢

iPhone:如何通过 UILabel 内容高度更改行高

在 git 中显示每个作者的更改行数

不同的 SELECTs 子句更改行数(具有相同的 WHERE 条件)

剑道网格行选择更改事件?

javascript 定义二维数组,两列,未知行数