我有多个div元素,它们在一些文本旁边还包含一个写为+example@email.com的电子邮件地址。现在,我尝试将span作为每个电子邮件地址的包装添加。我找到了用一些span元素和文本替换以+开头的每个单词的解决方案。有什么方法可以检查+example@email.com是否已经有跨度?我不想多次包装。我正在使用coffeescript
wrapAllThreadEmails = ->
$('.comment-body-area').each (comment) ->
text = $(this).html().replace(/\s\+(.*?)(\s|$)/g, '<span> +$1</span>$2')
$(this).html(text)
return
答案 0 :(得分:0)
好的,您可以先检查返回的HTML是否与<span>
相匹配:
wrapAllThreadEmails = ->
$('.comment-body-area').each (comment) ->
if not $(this).html().match(/<span>/) # Check for matching <span> here
text = $(this).html().replace(/\s\+(.*?)(\s|$)/g, '<span> +$1</span>$2')
$(this).html(text)
您还可以从函数CoffeeScript will always return the final value的表达式中删除return
。