Javascript 如何为单击的记录获取动态循环元素的id

Javascript 如何为单击的记录获取动态循环元素的id,javascript,jquery,Javascript,Jquery,我有通过json_encode循环并发送到html文件的记录。对于每个记录,我都有一个数据属性,我正在存储记录id。我试图完成的是当用户单击Edit.recEdit时,我可以获得id数据recId。我正在尝试使用click函数,利用$this和父函数来实现这一点 我做错了什么 以下是php文件中的循环代码: $html .= '<div class="recentProjectCont" data-recId="'.$recProjId.'">'; $html .= '<div

我有通过json_encode循环并发送到html文件的记录。对于每个记录,我都有一个数据属性,我正在存储记录id。我试图完成的是当用户单击Edit.recEdit时,我可以获得id数据recId。我正在尝试使用click函数,利用$this和父函数来实现这一点

我做错了什么

以下是php文件中的循环代码:

$html .= '<div class="recentProjectCont" data-recId="'.$recProjId.'">';
$html .= '<div class="recProjInfoCont">';
$html .= '<div class="recInfoCont1">';
$html .= '<span class="recProjName recBaseFormat">'.$recProjName.'</span>';
$html .= '</div>';
$html .= '<div class="recInfoCont2">';
$html .= '<span class="recInfoStat recBaseFormat">'.$recProjStat.'</span>';
$html .= '</div>';
$html .= '</div>';
$html .= '<div class="recEdit">Edit</div>';
$html .= '</div>';
数据属性的名称在jQuery的内部缓存中被标准化为小写,因此需要使用数据'recid'而不是数据'recid'

$document.body.on'click','.recEdit',函数{ var projID=$this.parent.data'recid'; console.log“项目ID为…”+projID; }; $recProjName $html $recProjStat 编辑 $html
如果不坚持使用$this,可以尝试提供如下onClick处理程序函数:

function(event) {
  var projID = $(event.target).parent().data('recId');
  console.log('Project ID is..... ' + projID);
}

您可以用这种方式稍微改变一下您的方法-在最后一行php之前更改为

$html .= '<div class="recEdit" onclick="clicked('.$recProjId.')">Edit</div>';
函数clickedprojID{ console.log“项目ID为…”+projID; } .recEdit{填充:10px;背景:fdf;宽度:30px;光标:指针} 我的项目 统计数字123 编辑
谢谢-这就成功了!当然,之前已经注意到了案例规范化…?@HereticMonkey不,我迄今为止所做的任何事情都没有给我带来任何问题。我不知道我有一个名声:你是对的,这本应该是一个重复关闭的。考虑到它在语法上被破坏,我不确定为什么会被否决,就最佳实践而言,这是一个大倒退。@Rorymcrossan使用jquery就最佳实践而言是一个大倒退,这是有争议的。然而,使用内联onclick属性并不是任何人都应该做的事情,这是有争议的——现代的framewroks就像html模板中的角度绑定处理程序一样。在纯js中,尤其是对于小页面,这是可以接受的。对于大页面,人们使用框架。。。
$html .= '<div class="recEdit" onclick="clicked('.$recProjId.')">Edit</div>';
function clicked(projID) { 
    console.log('Project ID is..... ' + projID);
}