Javascript只获取foreach循环中的第一个id。为什么?

时间:2016-11-01 16:32:52

标签: javascript php loops

我使用foreach循环来获取一些具有不同id的标签。这样我就可以使用id标签1,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
}
?>

1 个答案:

答案 0 :(得分:0)

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