【问题标题】:Wrap index of character in string in span tag with class javascript使用类 javascript 在 span 标记中的字符串中包装字符索引
【发布时间】:2016-05-12 02:58:37
【问题描述】:

我有一个带有这样字符串的元素:

<p>I like trains and planes</p>

我用 jQuery .text() 得到它的文本并将它保存在一个字符串中。

var str = $('p').text();

例如,我想用str[5] 查找“k”,并替换&lt;p&gt; 的内部HTML 以将其包裹在带有“red”类的&lt;span&gt; 标记周围。所以我可以设计它。我找到了this 解决方案,但它的答案使用了一个正则表达式,我希望这封信添加一个跨度换行是可变的。

我怎样才能做到这一点?

PS:我想例如改变这个:

<p>I like trains and planes</p>

到这里:

<p>I li<span class="red">k</span>e trains and planes</p>

但我不想找到“k”,因为它们可能是很多“k”字符,我想在元素中找到字符号x

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    你可以用你的 var str 和 index x 做到这一点:

    $('p').html(str.slice(0, x) + '<span class="red">' + str[x] + '</span>' + str.slice(x + 1));
    

    【讨论】:

      【解决方案2】:

      var getletter = $('p').text().charAt(4);
      var newletter = '<span class="red">'+getletter+'</span>';
      //alert(newletter);
      var replace_it = $('p').text().replace(getletter , newletter);
      //alert(replace_it);
      $('p').html(replace_it);
      .red{
        color : red;
      }
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      
      <p>I like trains and planes</p>

      【讨论】:

      • 谢谢,但是replace会替换第一个出现的字母,如果字母很常见(即:字母e),它将替换第一个e而不是我想要的那个(它可能是第三个e在字符串中)
      • @ALSDMinecraft by charAt(4) 您只需确定字母编号 5 导致 charAt 从 0 开始 ..您可以随意更改它...在我的回答中,我使用的是字母索引而不是溢出字母 K 或 e
      • @ALSDMinecraft,您只需将.replace() 更改为replaceAt(),即可使用此答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 2022-10-07
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      相关资源
      最近更新 更多