javascript - jQuery:从数据属性中删除除前 4 个字符之外的所有字符

标签 javascript jquery html attributes

我试图从每个 div 的数据属性中删除除前 4 个字符之外的所有字符,标记如下:

HTML

<div class="grid-block" data-category="17.40—18.20">text</div>
<div class="grid-block" data-category="18.40—19.40">text</div>
<div class="grid-block" data-category="19.20—20.20">text</div>
<div class="grid-block" data-category="20.40—21.30">text</div>

期望的结果是这样的:

<div class="grid-block" data-category="1740">text</div>
<div class="grid-block" data-category="1840">text</div>
<div class="grid-block" data-category="1920">text</div>
<div class="grid-block" data-category="2040">text</div>

理想情况下也删除每个点,但这不是必需的。不确定这是否可行,任何建议将不胜感激!

最佳答案

迭代具有 [data-category] 属性的所有元素,并从属性中删除 . 字符,然后使用 .substring(0, 4 ) 检索前 4 个字符:

Example Here

$('[data-category]').each(function () {
    var category = $(this).data('category').replace('.', '').substring(0, 4);
    $(this).attr('data-category', category);
});
<小时/>

不过,您不需要 jQuery 来执行此操作:

Example Here

var elements = document.querySelectorAll('[data-category]');
Array.prototype.forEach.call(elements, function (el) {
    var category = el.dataset.category.replace('.', '').substring(0, 4);
    el.setAttribute('data-category', category);
});

关于javascript - jQuery:从数据属性中删除除前 4 个字符之外的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29155756/

相关文章:

javascript - 在 Duktape 上使用 promise

javascript - 动态创建用于访问对象属性的索引

HTML/CSS : Form does look different on firefox than on chrome

html - CSS HTML 如何删除表格中的整个单元格链接?

javascript - AngularJS - $watch 内部的初始化取决于两个模型

javascript - 理解回调错误参数所需的 async.js 解释

javascript随机溢出或超出范围

php - 表单验证以查看电子邮件是否已存在于 MySQL 数据库中

javascript - 在用户突出显示的文本周围放置标签?

html - 应用框悬停时我的链接停止工作