如何替换HTML元素的data属性中的值

时间:2019-02-04 19:39:06

标签: javascript jquery

我有一个div,其中有一个data-attribute。我想替换data-attribute字符串中的字符。

我正在尝试将\r\n替换为</br>,但无法实现。我该怎么办?

<div class="dataval" data-finid="aljslajlsllsjds\r\nsdksadshdsd\r\ndskdsajdsajdasdk\r\nasdashdashdkasj\r\n">
$('.dataval').attr('data-finid').replace(\\r\n\g,"</br>")

2 个答案:

答案 0 :(得分:4)

这里有几个问题:

  • 您的正则表达式无效;它需要用/
  • 分隔
  • \n必须为\\n
  • 您对replace()调用的输出没有执行任何操作。要更新该值,您可以向attr()提供一个函数,该函数返回更新后的值。

尝试一下:

$('.dataval').attr('data-finid', function(i, id) {
  return id.replace(/\\r\\n/g, "</br>");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="dataval" data-finid="aljslajlsllsjds\r\nsdksadshdsd\r\ndskdsajdsajdasdk\r\nasdashdashdkasj\r\n">Foo</div>

答案 1 :(得分:0)

const finid = $('.dataval').attr('data-finid');

console.log(finid.replace(/\\r\\n/g, "</br>"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="dataval" data-finid="aljslajlsllsjds\r\nsdksadshdsd\r\ndskdsajdsajdasdk\r\nasdashdashdkasj\r\n">