添加多个事件侦听器ajax

时间:2020-01-08 14:04:54

标签: javascript ajax iteration

我正在尝试迭代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){}
                });
            });
          });

1 个答案:

答案 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应该始终具有以字母字符开头的值。