Javascript 如何替换数据属性中的特定字符串字?
我使用一个脚本从元素类名称中添加一个动态数据属性值——第二部分是我想修剪数据属性中的值 html的示例:Javascript 如何替换数据属性中的特定字符串字?,javascript,jquery,Javascript,Jquery,我使用一个脚本从元素类名称中添加一个动态数据属性值——第二部分是我想修剪数据属性中的值 html的示例: <div class="newgroup HardDrivesExternal" data-item-tags="newgroup HardDrivesExternal show"></div> <div class="newgroup ServiceSuppor" data-item-tags="newgroup ServiceSupport"><
<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>
在本例中,我希望删除数据值中的第一个和第三个单词-我无法将其从elements类中删除,因此我需要从data属性中执行此操作。另外,中间的单词会动态变化,所以我想针对特定的单词-newgroup和show。更糟糕的是,show这个词并不总是有价值的
替换价值的特定部分的最佳方法是什么 您可以使用split()
$(文档).ready(函数(){
var data=$('.hardDrivesTernal').attr('data-item-tags');
var newdata=data.split(“”);
newdata.shift();
newdata.shift();
警报(newdata.join(“”);
});代码>
正如我所评论的,您可以使用split获取单词数组,并使用array.splice()
获取第二个单词
注意:我使用了.attr
进行设置,因为.data(key,val)
不起作用。我还更新了元素的文本,以显示值
(函数(){
$.each($(“.newgroup”),函数(i,el){
var attr=“项目标签”;
var val=$(el).data(attr).split(“”).splite(1,1)[0];
$(el).attr(“数据-”+attr,val);
})
})()
测试1
test2
请添加您想要的输入和输出,假设数据值总是用空格分隔,并且只有3个letters@guradio您的示例显示了第三个元素,OP是请求删除前两个值。@MarcosPérezGude是删除前两个值,这就是为什么只剩下最后三个值的原因。是字数不同还是只有3个?应该解释所有细节!如果元素不改变文本,我怎么写出来?你能给我举个例子吗?我得到TypeError:当我尝试时,无法读取未定义的属性“split”。