数据属性值未在jquery var中传递[重复]

Posted

技术标签:

【中文标题】数据属性值未在jquery var中传递[重复]【英文标题】:Data attribute value is not passed in jquery var [duplicate] 【发布时间】:2019-02-04 12:21:44 【问题描述】:

我有以下问题。 我从 db 生成多个数据,每个项目都有一个“删除”btn,它有一个带有条目 ID 号的“data-entryid”属性。

我想在单击垃圾桶图标时传递每个项目的数据属性,但使用当前的 js 代码我只能获得第一个条目的 id。

这是我的 html btn 代码,其中“entry-num”是从 db 生成的条目 id:

<a href="#" id="dlt-btn" data-entryid="entry-num" class="btn btn-danger delete">
   <i class="far fa-trash-alt"></i>
</a>

这是我正在尝试(目前)在控制台中传递值的 js 代码:

$("#dlt-btn").click(function()
 var entryId = $(this).data("entryid");
 console.log(entryId);
);

【问题讨论】:

id 属性每页应该是唯一的。 哦,我明白了!感谢您的澄清! 【参考方案1】:

id 全局属性定义了一个唯一标识符 (ID),该标识符在整个文档中必须是唯一的。其目的是在链接(使用片段标识符)、脚本或样式(使用 CSS)时识别元素。

使用 class 代替 id

$(".delete").click(function()
  var entryId = $(this).data("entryid");
  console.log(entryId);
);

【讨论】:

哦!有效!当我使用 id 时为什么会发生这种情况的任何解释?! (避免再次犯同样的愚蠢错误) @HarrysR.,在文档中 id 应该是唯一的。【参考方案2】:

使用 Class 而不是 Id,因为它是唯一的或生成的 id

【讨论】:

【参考方案3】:

由于页面加载后正在生成数据,您应该尝试事件委托。类似的东西:

$('#someParentElement').on('click', '.deleteButtonClass', function()
 var entryId = $(this).data("entryid");
 console.log(entryId);
);

【讨论】:

【参考方案4】:

你可以像这个使用类一样简单地使用 id 并相应地更改

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function()
  $(".dlt-btn").click(function()
 var entryId = $(this).data("entryid");
 alert(entryId);
);
);
</script>
</head>
<body>
<a href="#" data-entryid="value" class="btn btn-danger delete dlt-btn">
   <i class="far fa-trash-alt">ddd</i>
</a>
</body>
</html>

【讨论】:

【参考方案5】:

如果你不想使用 class 和 id 属性。

$("a").on('click',function()
    var entryId = $(this).data("entryid");
    console.log(entryId);
);

【讨论】:

以上是关于数据属性值未在jquery var中传递[重复]的主要内容,如果未能解决你的问题,请参考以下文章

IBInspectable 属性值未在 xib 中更新

HTML 表单按钮值未在 Safari 和 Chrome 中发布

来自父级的 TextField 默认值未在子级上呈现

Python:函数返回的值未在熊猫数据框中更新

Firefox 输入类型 = 日期最小值未在最小有效月份打开

值未传递给父组件[重复]