如何使用 Jquery 设置数据属性?

新手上路,请多包涵

我正在尝试通过 jquery 更改数据进度

这样做

$("#changeme").data('progress','100');

我也试过

$("#changeme").attr('data-progress','100');
$("#changeme").prop('data-progress','100');

它不会工作,我不知道该怎么办。

 <div id="changeme" style="padding-left:10px;" class="tox-progress" data-size="120" data-thickness="8" data-progress="23" data-color="#229922" data-background="aqua" data-speed="500">
    <div class="tox-progress-content" data-vcenter="true">
        <p style="padding-left:40px;padding-top:10px;"></p>
    </div>
</div>

更新:非常感谢您的所有帮助,但我已经尝试了所有建议,但仍然不会更新。它是一个圆形进度条,data-progress 告诉它要填充多少。它不会改变我一开始设置的初始值。

更新 2:我修好了!我忘记了激活循环进度条的脚本,它位于标题中并在 document.ready 之前加载。谢谢大家的帮助!

原文由 Daniel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 471
1 个回答

您需要阅读有关 jquery 函数 .data().attr() 的更多信息,文档将帮助您理解 .data 之间的区别。 属性

.data() :存储与匹配元素关联的任意数据,或返回匹配元素集中第一个元素的命名数据存储中的值。

.attr() :获取匹配元素集中第一个元素的属性值,或为每个匹配元素设置一个或多个属性。

例如,如果你有这个 dom 元素

<a id="link1" data-test="initvalue" href="#">link1!</a>

尝试评估这些值

console.log( $('#link1').data('test') );
//outputs "initvalue"

// update the old value
$('#link1').data('test', 'newvalue');

console.log( $('#link1').attr('data-test') );
//outputs "initvalue" as the attribute was never changed

console.log( $('#link1').data('test') );
//outputs "newvalue" as the value has been updated on the object

原文由 Ahmed Yousif 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题