繁体   English   中英

如何替换data-attribute中的特定字符串词?

[英]How do I replace a specific string word in data- attribute?

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

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这个词永远不会是一个价值。

替换价值的特定部分的最佳方法是什么?

正如我所评论的,您可以使用split获得单词数组,并使用array.splice()获得第二个单词。

注意:我已经使用.attr进行设置,因为.data(key, val)无法正常工作。 相关帖子 我也更新了element的文本,以显示价值。

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

您可以使用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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM