javascript - 在标点符号前动态添加<wbr>标签

标签 javascript jquery html

我想知道如何添加 <wbr>电子邮件地址中标点符号前的标记,动态使用 jQuery。

我想一定有一种方法可以扫描字符串中的“.”。或“@”符号并将此标记放在它之前,但我一直无法弄清楚。

我尝试了两种不同的方法,这是我在搜索解决方案后能够想出的唯一解决方案:

HTML:

<div class="container">
  <span class="some-special-classname">
    verylongfirstname.verylonglastname@prettylongemailaddress.com
  </span>

  <br /> <br />
  <button class="test">Test Button</button>
</div>

CSS

wbr:after {
     content:"\00200B";
}

.container {
  margin: 0 auto;
  max-width: 400px;
  padding : 10px;
  border: 1px solid #bbb;
}

Javascript:(第一次尝试)

$( ".test" ).click(function() {
  $('.some-special-classname').html().replace(/@/g,"<wbr>@");
  $('.some-special-classname').html().replace(/./g,"<wbr>.");
});

Javascript:(第二次尝试)

var str = $('.some-special-classname').val();
str.replace(/@/g,'<wbr>@');

function myFunction() {
   var str = $('.some-special-classname').val();
   var n = str.indexOf(".");
   document.getElementById("demo").innerHTML = n;
}

最佳答案

可以使用html(function(index, oldhtml)来解析和更新现有内容

$('.some-special-classname').html(function(_, oldhtml){
      return oldhtml.replace(/([@.])/g,"<wbr>$1");
});

如果选择器中有多个匹配元素,这也会遍历一个集合并将它们视为实例特定

引用:html(fn) docs

关于javascript - 在标点符号前动态添加<wbr>标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31819939/

相关文章:

php - 在使用 php 插入 sql 之前检查记录

javascript - 我如何将更多视频源添加到我的 javascript 代码中?

javascript - jquery 节点数组

javascript - JS无法读取JS生成的行?

javascript - 想要使用相同的 java 脚本代码单击两个不同的按钮来切换 2 个不同的列表

javascript - jQuery 用 HTML 替换字母

javascript - 显示 Javascript 函数的结果

javascript - 为什么我的 typedArrays 在 Chrome 中的访问速度比 Firefox 慢一个数量级?

javascript - 使用公共(public) key 传播的对象

javascript - 单击链接时的确认框