我正在尝试迭代ajax查询,但是每当我尝试运行代码时, i 始终默认为 1 。我对js不太熟悉,想知道是否任何人都不知道如何执行此操作,或者是否有完全更好的方法来执行此操作。预先感谢!
$.each(Array(10), function(i) {
var clickedButton = $('#' + (++i));
$(clickedButton).click(function (){
$.ajax({
type: 'POST',
url: 'example.php',
data: {lightid: i},
success:function(result){}
});
});
});
答案 0 :(得分:0)
通过使用带有每个“按钮”必需数据的data
属性,您可以实现所需的结果。可以通过this.dataset.<attribute-name>
进行选择并将其发送到服务器:
$('[data-id]').on('click',function(){
$.post('https://jsonplaceholder.typicode.com/posts',{lightid:this.dataset.id})
.done(r=>console.log(r))
})
div[data-id] {cursor:pointer}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>Click on any div below:</div>
<div data-id="1">one</div>
<div data-id="2">two</div>
<div data-id="3">three</div>
<div data-id="4">four</div>
<div data-id="5">five</div>
<div data-id="6">six</div>
<div data-id="7">seven</div>
<div data-id="8">oneeight</div>
<div data-id="9">nine</div>
<div data-id="10">ten</div>
我使用属性data-id
来保存数字信息,因为html属性id
应该始终具有以字母字符开头的值。