找到具有某个特定值的自定义属性的元素并替换它

时间:2017-07-28 10:50:51

标签: jquery html

我想找到属性为data-socketid且值为abc的所有元素,并将该值替换为xyz。怎么做。

  

请注意,abc和xyz都是在页面时动态创建的   刷新

这是我到目前为止所做的。但它不起作用。

HTML

<div id="chat-win" data-socketid="abc">
   <div class="close-conversation-box">                   
      <div class="text-right">                     
        <a id="end-chat" data-socketid="abc" >End Chat</a>
        <a id="stop_bot"  data-socketid="abc" >Stop Bot</a>
      </div>
   </div>
</div>

脚本

var matchDataSocketId = $("[data-socketid$=abc]");
var len = Object.keys(matchDataSocketId).length;

for(var i = 0; i < len; i++) {
   $(matchDataSocketId[i]).attr('data-socketid', $(matchDataSocketId[i]).attr('data-socketid').replace(abc, xyz));
}

任何帮助,建议都将受到高度赞赏。提前致谢。

2 个答案:

答案 0 :(得分:2)

根据代码示例表明它是部分匹配/替换,您可以使用.attr(fn)更新属性值

$("[data-socketid=$abc]").attr(function(_, value) {
   return value.replace('abc', 'xyz');
});

答案 1 :(得分:1)

试试这个:

$("[data-socketid=abc]").attr("data-socketid", "xyz");

它只是遍历匹配元素,并将data-socketid属性的值更改为xyz

请注意,我在您的选择器$之前删除了=,因为您已经提到匹配元素应该abc作为data-socketid的值属性。