Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何替换数据属性中的特定字符串字?_Javascript_Jquery - Fatal编程技术网

Javascript 如何替换数据属性中的特定字符串字?

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"><

我使用一个脚本从元素类名称中添加一个动态数据属性值——第二部分是我想修剪数据属性中的值

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>

在本例中,我希望删除数据值中的第一个和第三个单词-我无法将其从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”。