使用javascript在h5中添加span标记

时间:2013-05-17 17:58:53

标签: javascript html

我想在这个h5标签中使用javascript插入一个带有类的span,它将应用于第一个单词:

<div class="container_skitter" style="width: 715px; height: 230px;">
   <div class="image">
      <a href="#">
      <div class="label_skitter" style="width: 715px; display: block;">
        <h5>Increase knife life</h5>
      </div>
   </div>
</div>

<div class="container_skitter" style="width: 715px; height: 230px;">
   <div class="image">
      <a href="#">
      <div class="label_skitter" style="width: 715px; display: block;">
        <h5><span class="firstword">Increase</span> knife life</h5>
      </div>
   </div>
</div>

是这样的吗?

<script>
    $('h5').html(function (i, html) {
    return html.replace(/(\w+\s\w+)/, '<span>$1</span>')
});
</script>

似乎无法让它发挥作用。

由于

2 个答案:

答案 0 :(得分:1)

在document.ready下添加。在完全加载DOM之前,您的脚本运行得太早。此外,您只需要匹配第一个单词,这样就足以选择它。 /(\w+\s)/

$(document).ready(function(){
     $('h5').html(function (i, html) {
     return html.replace(/(\w+\s)/, '<span class="test">$1</span>')
     });
   });

Fiddle

答案 1 :(得分:0)

你走在正确的轨道上。让我们试着在没有JQuery的情况下做到这一点!

<script>
    Array.prototype.slice.call (document.querySelectorAll ('h5')).forEach
      function (h5el) {
        // we will come here with h5el referencing an h5 of the document
        h5el.innerHTML = h5el.innerHTML.replace (/^(\w+)\s/, 
          '<span class="firstword">$1</span> ';
      });
</script>

将此脚本放在标记和presto之前或之后,所有h5元素都将被修改。