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

时间:2015-03-19 21:58:19

标签: 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>

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

2 个答案:

答案 0 :(得分:1)

使用[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);
});

答案 1 :(得分:0)

尝试replacesubString来获得结果

类似的东西:

var x = document.getElementByClassName("grid-block")[0];
var inner = x.innerHTML;
inner = inner.replace('-','').replace('.','').subString(0,4); // subString(start,length)
x.innerHTML = inner;