【问题标题】:check a given string has any span tags or not检查给定的字符串是否有任何跨度标签
【发布时间】:2018-09-12 16:25:39
【问题描述】:

我正在使用angularjs。现在,我面临一些问题,例如 -

我有一个字符串,

Driven professional with broad technical skill-set, very strong attention to detail and over 8 years experience in front-end web development.

在本文中,我突出显示了字符串8 years,并在此文本中添加了 span 类。现在我已经处理了选择文本和右键单击事件。现在,当用户选择此文本并右键单击它时,我得到所选文本,我想检查所选字符串是否有任何跨度?我怎样才能检查这个?提前致谢。

$scope.doSomethingWithSelectedText = function (event) {
          var valueofSelection = handleClick(event);
          var selectedText = getSelectedText();
        };


var handleClick = function (evt) {
          if (evt.button === 2) {
            return true;
          }
          return false;
        };

整个文本在一个 p 中,并在其中添加了一些跨度

【问题讨论】:

  • 你尝试过使用正则表达式吗?
  • 是的,但没有运气,因为我以同样的方式得到一个字符串,我尝试使用事件对象。
  • 您需要向我们展示更多代码,以便我们了解您的进度。
  • 您要检查<p>some html</p> 的内容中是否包含
  • 我的意思是,当我选择一些文本时,如果该文本的一部分存在于跨度文本中

标签: javascript angularjs


【解决方案1】:

您可以将整个字符串放入一个 DOM 元素中,然后使用 getElementsByTagName 从中获取所有跨度。

const getAllSpanTags = (text) => {
  let $p = document.createElement('p')
  $p.innerHTML = text;
  return $p.getElementsByTagName('span') || [];
}

let spans = getAllSpanTags(YOUR_TEXT_HERE);
console.log(spans);

【讨论】:

    猜你喜欢
    • 2018-06-07
    • 2011-11-20
    • 2012-04-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 2012-04-27
    相关资源
    最近更新 更多