我使用一个脚本来添加元素类名的动态数据属性值 - 第二部分是我要修剪数据属性中的值。
html的例子:
<div class="newgroup HardDrivesExternal" data-item-tags="newgroup HardDrivesExternal show"></div>
<div class="newgroup ServiceSuppor" data-item-tags="newgroup ServiceSupport"></div>
我希望它看起来像这样:
<div class="newgroup HardDrivesExternal" data-item-tags="HardDrivesExternal"></div>
<div class="newgroup ServiceSuppor" data-item-tags="ServiceSupport"></div>
在示例中,我想删除数据值中的第一个和第三个单词 - 我无法将其从元素类中删除,因此我需要从data属性中执行此操作。此外 - 中间词动态变化,所以我想定位特定的单词 - newgroup和show。更糟糕的是,show这个词并不总是一个值。
什么是替换价值特定部分的最佳方式?
答案 0 :(得分:2)
正如我所评论的那样,您可以使用split来获取单词数组,并使用array.splice()
来获取第二个单词。
注意:我使用了.attr
进行设置,因为.data(key, val)
无效。 Related post。我还更新了元素的文本,以显示价值。
(function() {
$.each($(".newgroup"), function(i, el){
var attr = "item-tags";
var val = $(el).data(attr).split(" ").splice(1,1)[0];
$(el).attr("data-" + attr, val);
})
})()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="newgroup HardDrivesExternal" data-item-tags="newgroup HardDrivesExternal show">test1 </div>
<div class="newgroup ServiceSuppor" data-item-tags="newgroup ServiceSupport"> test2</div>
答案 1 :(得分:1)
您可以使用split()
$(document).ready(function() {
var data = $('.HardDrivesExternal').attr('data-item-tags');
var newdata = data.split(" ");
newdata.shift();
newdata.shift();
alert(newdata.join(" "));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="newgroup HardDrivesExternal" data-item-tags="newgroup ServiceSupport show anotherTag"></div>