如何调用动态ID?

时间:2017-05-20 13:54:55

标签: javascript php jquery html css

我的代码是这样的:

<?php
    for($i=0;$i<5; $i++) {

?>
        <button type="submit" id="test<?php echo $i ?>">
            test <?php echo $i ?>
        </button>
<?php
    }
?>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
    for(var i=0; i < 5; i++) {        
        $("#test"+i).click(function(){
            console.log('test'+i);
        });
    }
</script>

当我点击任何按钮时,结果:

  

TEST5

当我点击按钮测试0时,结果是:test0

为什么它不起作用?

2 个答案:

答案 0 :(得分:4)

你应该这样做。因为i始终是5

&#13;
&#13;
for(var i=0; i < 5; i++) {        
  $("#test"+i).click(function(){
    console.log($(this).text());
  });
 }
&#13;
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<button type="submit" id="test0">test 0</button>
<button type="submit" id="test1">test 1</button>
<button type="submit" id="test2">test 2</button>
<button type="submit" id="test3">test 3</button>
<button type="submit" id="test4">test 4</button>
&#13;
&#13;
&#13;

同时

在这种情况下使用class属性

会更好 像这样

&#13;
&#13;
$(".test").click(function(){
  console.log($(this).text());
});
&#13;
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<button type="submit" class="test">test 0</button>
<button type="submit" class="test">test 1</button>
<button type="submit" class="test">test 2</button>
<button type="submit" class="test">test 3</button>
<button type="submit" class="test">test 4</button>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

在循环中使用let代替var