javascript - 动态内容数据ID在jQuery中不起作用

有一个动态的html div

<a data-id="17" onclick="getcustomer();">
    <div class="note note-success">
        <h4 class="block">A</h4>
        <p>Email : a@gmail.com</p>
        <p>Mobile : 8</p>
        <p>DOB : 0000-00-00</p>
    </div>
</a>


在上述锚点的click.it上调用此函数

function getcustomer(){
    var id = $(this).data('id');
    alert (id);      
    $.post(base_url+'who/customer', {
        customer_id: id
    }, function(data, status){
        console.log(data);
    });
}


但是警报接收是不确定的。

我将如何获取 data-id值?

这是动态领域。在dom加载后添加此a。

最佳答案

this不是引用元素,而是window


this作为参数传递给getcustomer函数



function getcustomer(elem) {
  var id = $(elem).data('id');
  alert(id);
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a data-id="17" onclick="getcustomer(this);">
  <div class="note note-success">
    <h4 class="block">A</h4>
    <p>Email : a@gmail.com</p>
    <p>Mobile : 8</p>
    <p>DOB : 0000-00-00</p>
  </div>
</a>





或者更好地使用 jQuery方法使用 .on事件绑定



$('.eventBinding').on('click', function() {
  var id = $(this).data('id');
  alert(id);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a data-id="17" class='eventBinding'>
  <div class="note note-success">
    <h4 class="block">A</h4>
    <p>Email : a@gmail.com</p>
    <p>Mobile : 8</p>
    <p>DOB : 0000-00-00</p>
  </div>
</a>