在div中识别字符并添加类javascript

时间:2019-01-22 10:01:27

标签: javascript jquery html

我试图识别div中的字符并将其添加到所有matchs类中。

示例:

> Kapetown > China Town >London > Washington

我想识别字符>并给他们全部上课

我试图这样做

if (sign.indexOf("$") >= 0) {
 //remove the sign
}

3 个答案:

答案 0 :(得分:2)

这是您可以使用的技巧:

var a = '> Kapetown > China Town >London > Washington' //get the text from document here
a = a.split('>');
a = a.join('<span class="myClass">></span>');

现在您可以在文档中替换“ a”。

这只是您可以使用的技巧。也许这会对您有所帮助。

答案 1 :(得分:1)

  

我认为目标 div

中仅包含文本

$(document).ready(function() {
  // get the target element
  var breadcrumbs = $('#breadcrumbs')
  // get all text of that element. Note: this will remove all
  // HTML tag and get only the text
  var str = breadcrumbs.text()
  // a regEx to find all occurrences of ">" sign
  // and wrap them with span.myClass
  var strHtml = str.replace(/\>/g, "<span class='myClass'>&gt;</span>");
  // push the replaced string back to the targeted element
  breadcrumbs.html(strHtml)
})
.myClass {
  color: red;
 }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.2/jquery.min.js"></script>
<div id="breadcrumbs">> Kapetown > China Town >London > Washington</div>

答案 2 :(得分:0)

如果我正确理解了您的问题,那么您就有这样的特定HTML:

<div id="abc">
  > Capetown > China > London > Washington
</div>

您希望它成为这样:

<div id="abc">
      <span class="some-class">&gt;</span> Capetown <span class="some-class">&gt;</span> China <span class="some-class">&gt;</span> London <span class="some-class">&gt;</span> Washington
</div>

然后使用Vanilla JavaScript,您可以通过Regex实现此目的。如果HTML就像我提出的示例一样,这就是我要怎么做:

let content = document.getElementById('abc').textContent.replace(/>/g, '<span class="some-class">&gt;</span>');
document.getElementById('abc').innerHTML = content;

  1. 我在这里所做的是使用document.getElementById('abc').textContent来获取<div id="abc">...</div>内部的文本内容,并将此文本内容存储在可变变量content中。
  2. li>
  3. 然后,我使用JavaScript的String.prototype.replace方法替换了所需的字符(在我们的例子中是“>”字符)。 String.prototype.replace方法接受两个参数:模式和替换字符串。 read about the replace method here
  4. 我要选择的字符是“>”。因此,使用正则表达式,我要匹配的模式是/>/。现在仅使用此表达式将仅匹配“>”的第一个实例。因此,我给它提供了一个全局参数,以匹配/>/g出现的所有“>”。
  5. 现在我们要给它上课。因此,我决定使用内联HTML元素<span>来避免DOM布局中的任何更改。现在,对于替换子字符串,我使用<span class="some-class">&gt;</span>&gt;是“>”符号的HTML代码。让我们在String.prototype.replace方法中将这两个参数作为content.replace(/>/g, '<span class="some-class">&gt;</span>');
  6. 执行后,变量content现在包含我们所需的带有类的字符。接下来,我将<div id="abc">...</div>的内容替换为content的{​​{1}}变量。我使用了document.getElementById('abc').innerHTML = content;属性,因为我们在替换字符串中包含了一些HTML。

如果这是您想要的,那么希望对您有所帮助。