当前位置: 首页 > 知识库问答 >
问题:

Javascript:特定字符前的粗体字符串

熊朝
2023-03-14

我有一个Javascript代码,可以将整个字符串变为粗体,但是,我想修改代码,只将“:”前面的字符串部分特别加粗

我目前拥有的代码是:

function changeBrandName() 
{
  var prodList = document.querySelectorAll("h1.ProductList-title");
  for (i = 0, len = prodList.length; i < len; i++) 
  {
    var store = prodList[i].indexOf(":");

    for (j = 0; j < store; j++)
    {
      prodList[i].charAt[j].style.fontWeight = 'bold';
    } 
  }
}

以这种方式应用fontWeight目前不起作用-请提供建议。

完整的字符串是“Vifa:鹅卵石灰奥斯陆扬声器”-我希望“Vifa”用粗体。

共有3个答案

公冶翰池
2023-03-14

使用纯JavaScript,您必须迭代查询的元素,获取它们的innerHTML,转换html,然后将其设置回原位。

为了转换超文本标记语言,我使用indexOf查找冒号,然后将字符串分成两部分。然后,我使用模板字符串和重构字符串。

const prodList = document.querySelectorAll('.ProductList-title');

Array.from(prodList).forEach(elem => {
  const text = elem.innerHTML;
  const idx = text.indexOf(':');
  if (idx >= 0) {
    elem.innerHTML = `<b>${text.slice(0, idx)}</b>${text.slice(idx)}`;
  }
});
h1 {
  font-weight: normal;
}
<h1 class="ProductList-title">Prod 1: blabla</h1>
<h1 class="ProductList-title">Prod 2: blabla</h1>
<h1 class="ProductList-title">Prod 3: blabla</h1>
<h1 class="ProductList-title">Prod 4 no colon blabla</h1>

尉迟阳煦
2023-03-14

必须有一个更简单的解决方案,通过拆分,等等。但为了清晰起见,这里有一种方法

<h1 class="ProductList-title" style="font-weight: 100;">Vifa: Pebble Grey Oslo Loudspeaker</h1>

<script>
    function changeBrandName() {
        var prodList = document.querySelectorAll("h1.ProductList-title");
        for (var i = 0; i < prodList.length; i++) {
            var text = prodList[i].innerText;
            var index = text.indexOf(':');
            var lower = text.substring(0, index);
            var higher = text.substring(index + 1);
            prodList[i].innerHTML = '<b>' + lower + '</b>:' + higher;
        }
    }
    changeBrandName();
</script>
宗政学
2023-03-14

使用好的简单的老式Javascript:

let h1s = document.querySelectorAll('.ProductList-title');

btn.addEventListener('click', function(event) {
  for (const h1 of h1s) { 
    let [brand, text] = h1.textContent.split(':');
    h1.innerHTML = `<b>${brand}</b>: ${text}`
  }
  this.parentElement.removeChild(this);
})
h1 { font-weight: normal; }
<h1 class="ProductList-title">Porsche: Cayenne</h1>
<h1 class="ProductList-title">BMW: i8</h1>
<button id="btn" type="button">Click to self-destruct</button>
 类似资料:
  • 问题内容: 我在strings.xml的字符串之一中有一个长文本。我要加粗并更改该文本中某些单词的颜色。 我该怎么做? 问题答案: 您基本上可以在字符串资源中使用html标签,例如: 并使用Html.fromHtml或使用spannable,请检查我发布的链接。

  • 问题内容: 这是文本: 我想用粗体显示“服务条款”和“请注意:下文所述的HIGO服务条款自以上’最后更新’日期起对正在浏览HIGO网站的任何用户或创建了HIGO网站的任何用户生效。 HIGO帐户在该日期或之后。” 我尝试在uitextview中以编程方式使用uilabel,但无法正常工作: 也尝试使用这些,但不起作用,它仅显示“服务条款”和“最新更新..”,没有显示“请注意…”。 如何加粗字符串的

  • 示例:[可爱]微笑这是测试[笑哭] 目的:将这个字符串中所有中括号表示的文字替换为emoji

  • 问题内容: 表: 值: 我想之前替换字符串用。 结果: 如何使用子字符串和基于字符串中的字符进行替换? 问题答案: 您甚至不需要使用或,您可以使用以下命令: 您可以使用以下方法进行测试:

  • 我有一个包含路径的字符串 并且我想修剪前导和后导的和。Python3中的最佳实践是什么? 目前我正在使用 两个问题: 这是在Python 3中修剪特定字符的最佳修剪函数吗? 在Python 3中是否有针对此类操作的特定路径函数,这样我就不必手动设置分隔符了?

  • 问题内容: 我需要从字符串中删除所有字符,然后再在字符串中出现此字符: 不知道我该怎么做。 问题答案: 您可以使用strstr做到这一点。