添加特定元素的onclick事件(没有ID或类)

时间:2018-08-29 23:47:06

标签: javascript jquery

我想在标签中获取属性值(data-resource-id)。但是此标签没有ID或类。单击时,我只需要显示提示。这是我的代码:

<table>
<tbody>
<div class="x">
<tr data-resource-id="first"> //will show alert "first" when clicked
<tr data-resource-input="second">//show nothing when clicked
</div>
<div class="y">
<tr data-resource-id="first"> //show nothing when clicked
</div>

这是我的javascript代码:

$('.x').on('click','????',function(){
  var resourceid = $(this).attr('data-resource-id');
    alert(resourceid);
}) 

我不知道在'????'中写什么代码。我应该写什么代码?

3 个答案:

答案 0 :(得分:3)

此代码的更新版本可能对您有用

$(document).on('click', '.x [data-resource-id]', function() {
  const resourceId = $(this).attr('data-resource-id');
  alert(resourceId);
})
  • 请注意,您的原始代码中有一个名为resource-id的变量-但在JavaScript标识符中连字符是非法的。因此,您必须将该变量名称更正为resourceId

  • '????'变成了'.x [data-resource-id]',因此可以处理与选择器匹配的任何内容的点击

  • var成为const的良好衡量标准

  • 更正了制表符的一致性

答案 1 :(得分:1)

获取所有具有您的属性和值的标签:

'tr[data-resource-id="first"]'

仅获取与您的属性和值匹配的第一个标签:

'tr[data-resource-id="first"]:first'

答案 2 :(得分:0)

您可以将data属性用作选择器。如下

  $('.x').on('click','tr[data-resource-id="first"]:first',function(){
  var resourceid = $(this).attr('data-resource-id');
    alert(resourceid);
})