【发布时间】:2021-07-03 11:01:47
【问题描述】:
我有这个 Html 代码,在每个段落标签中都有两个数据属性“数据标签”和“数据名称”。我还有两个按钮,“显示数据”和“设置数据”。
显示数据按钮在控制台上正确显示段落数据属性。
当我点击设置数据时,它应该将所有带有数据属性“标签”的段落标签更改为“完成”,但它不起作用。我做错了什么?
$("document").ready(function() {
// Shows data attributes in console - WORKING
$("#showdata").click(function() {
$("p").each(function() {
var tag = $(this).data("tag");
var name = $(this).data("name");
console.log(tag);
console.log(name);
});
});
// Change data attibute 'tag' - NOT WORKING
$("#setdata").click(function() {
$("p").each(function() {
$(this).data("tag", "Complete");
console.log($(this).data("tag"));
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<p data-tag="tag1" data-name="p1">Item 1</p>
<p data-tag="tag2" data-name="p2">Item 2</p>
<p data-tag="tag3" data-name="p3">Item 3</p>
<button class="button" id="showdata">Show data</button>
<button class="button" id="setdata">Set data</button>
【问题讨论】:
-
我给你做了一个 sn-p,当你点击它时会显示完成 - 你的 tag=setTag 不返回标签的数据
-
@TJCrowder 您标记的副本没有回答 OP 提出的问题。
-
如果允许,请随时删除问题
-
var tag=$(this).data("tag", "Complete")使用 chaining - 所以返回$(this)。如果您单击显示,然后设置,然后再次显示,您可以看到它设置正确(使用问题的原始 v1,不一定是编辑),但您(曾经)只是输出错误的值。
标签: jquery custom-data-attribute