Javascript只从foreach循环中获取第一个id.为什么


Javascript gets only the first id from a foreach loop. Why?

我使用foreach循环来获得一些具有不同id的制表符。这样我就得到了id为tab1、tab2、tab3等的标签。然后,当我想使用javascript获得每个选项卡的id时,它只返回第一个选项卡的id,并将其用于所有选项卡。它不像php那样循环。为什么?

<?php
foreach ($DB_con->query($foos) as $foo) {
    ?>
    <div id='tab<?php echo $counter_foo; ?>'>
    <div id="divid" style="visibility: hidden"><?php echo $counter_foo; ?></div>
    <script>
    $(document).ready(function() {
        var dividvalue = document.getElementById('divid').innerHTML;
        alert(dividvalue);
    });
    </script>
    <?php
}
?>

将HTML中的id更改为class,并在JavaScript中使用getElementsByClassName而不是getElementById

div:

<div class="divid"> <!-- etc -->

和你的JS.

var dividvalue = document.getElementsByClassName('divid')[0].innerHTML;

同时考虑将divid更改为divclass,以保持一致性。

完整编辑代码:

<script>
var i = 0;
</script>
<?php
foreach ($DB_con->query($foos) as $foo) {
    ?>
    <div id='tab<?php echo $counter_foo; ?>'>
    <div class="divclass" style="visibility: hidden"><?php echo $counter_foo; ?></div>
    <script>
    $(document).ready(function() {
        var divclassvalue = document.getElementsByClassName('divclass')[i].innerHTML;
        alert(divclassvalue);
        i++;
    });
    </script>
    <?php
}
?>