我的代码是这样的:
<?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
为什么它不起作用?
答案 0 :(得分:4)
你应该这样做。因为i
始终是5
。
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;
同时强>
在这种情况下使用class
属性
$(".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;
答案 1 :(得分:1)
在循环中使用let
代替var
。