javascript – 获取包含特定元素的完整单词

前端之家收集整理的这篇文章主要介绍了javascript – 获取包含特定元素的完整单词前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
引用特定的DOM元素(例如< mark>),我们如何获得包含该元素的完整单词?

例如 :

H<mark>ell</mark>o Wor<mark>l</mark>d,and He<mark>llo</mark>,<mark>Pluto</mark>!

我希望得到以下输出

>首先< mark>:你好
>第二:世界
>第三名:您好
>第四名:冥王星

var $marks = $("mark");

var tests = [
  "Hello","World","Hello","Pluto",];

function getFullWord($elm) {
  // TODO: How can I do this?
  // 		   This is obvIoUsly wrong.
  return $elm.html();
}

var $marks = $("mark");
tests.forEach(function(c,i) {
  var word = getFullWord($marks.eq(i));
  if (word !== c) {
    alert("Wrong result for index " + i + ". Expected: '" + c + "' but got '" + word + "'");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
H<mark>ell</mark>o Wor<mark>l</mark>d,<mark>Pluto</mark>!

解决方法

如果您需要快速而紧凑的代码(单行代码),请尝试以下方法
var $marks = $('mark');

$marks.each(function() {
    var wholeWord = (this.prevIoUsSibling.nodeValue.split(' ').pop() + 
                     this.textContent + 
                     this.nextSibling.nodeValue.split(' ')[0]
                     ).replace(/[^\w\s]/gi,'');
});

JSFiddle(登录控制台和评论)

原文链接:https://www.f2er.com/js/156883.html

猜你在找的JavaScript相关文章