如何访问Jquery中锚标签的数据属性?

How to access data attributes of anchor tag in Jquery?

案例 1: 使用锚元素的 'onclick' 属性调用的函数

<a href='#' onclick='modifyCustomerDetails()' data-action='modifyCustAction' data-params='customerId=567'>Modify Customer</a>

function modifyCustomerDetails() {
    var srcEl = $(this); 
    console.log("ACTION::"+srcEl.data('action')) ;  
    console.log("PARAMS::"+srcEl.data('params')) ;          
}

浏览器控制台的输出是
未定义
未定义

案例 2: 锚元素绑定使用 jquery

$('a').bind('click', function() {

  var srcEl = $(this); 
  console.log("ACTION::"+srcEl.data('action')) ;    
  console.log("PARAMS::"+srcEl.data('params')) ;    
})

浏览器控制台的输出
modifyCustAction
customerId=567

我读到 jQuery 将回调函数的范围设置为作为回调主题的元素。

  1. 为什么数据属性不是 accessible/undefined 在案例 1 & 仅在情况 2 中可访问?
  2. 如何在案例 1 中访问锚元素的数据属性?

案例 1 在函数内部传递 this

<a href='#' onclick='modifyCustomerDetails(this)' 
data-action='modifyCustAction' data-params='customerId=567'>Modify Customer</a>

function modifyCustomerDetails(currObj) {
    var srcEl = $(currObj); 
    console.log("ACTION::"+srcEl.data('action')) ;  
    console.log("PARAMS::"+srcEl.data('params')) ;          
}

案例 1:

<a href='#' onclick='modifyCustomerDetails(this)' data-action='modifyCustAction' data-params='customerId=567'>Modify Customer</a>

function modifyCustomerDetails(obj) {
    console.log("ACTION::"+$(obj).attr('data-action')) ;  
    console.log("PARAMS::"+$(obj).attr('data-params')) ;          
}

id= "modify_customer" 添加到您的锚标签

并使用此 jquery 代码

<a href="#" onclick="modifyCustomerDetails()" 
data-action="modifyCustAction" 
data-params="customerId=567" 
id="modify_customer"> Modify Customer</a>

$(function(){ 
var a = $("#modify_customer").data('params')
alert(a)
});

它会给出结果customerId=567

我不是很清楚你的问题,但我想你想要这个

$('a').click(function(){
var propty= $(this); 
var action =propty.attr("data-action");
});