我想找到属性为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));
}
任何帮助,建议都将受到高度赞赏。提前致谢。
答案 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
的值属性。