代码之家  ›  专栏  ›  技术社区  ›  janhartmann

粗体文本中的字符串部分

  •  1
  • janhartmann  · 技术社区  · 15 年前

    我有一个无序的列表,其中包含

    <ul id="strip">
         <li><a href="#"><span>This-is a test string</span></a></li>
        <li><a href="#"><span>This is without</span></a></li>
         <li><a href="#"><span>New-test</span></a></li>
    </ul>
    

    我需要在“-”前面加粗,所以在第一个 <li>

    我陷入了应该找到“-”的循环中。

    注意:常规JavaScript,没有JQuery:-)

    1 回复  |  直到 15 年前
        1
  •  4
  •   James    15 年前

    使用 stringObject.replace(findstring,newstring) 方法。
    liString.replace(/\b(.*?-.*?)\b/,"<strong>$1</strong>")
    完整解决方案:

    var lists = document.getElementsByTagName("li");
    var listsL = lists.length;
    
    for (var i = 0; i < listsL; ++i){
       liString = lists[i].innerHTML;
       liString = liString.replace(/\b([^-]*-[^\b]*?)\b/,"<strong>$1</strong>");
       lists[i].innerHTML = liString;
    }