【问题标题】:Change color of a character更改字符的颜色
【发布时间】:2012-02-11 11:06:20
【问题描述】:

我有以下 HTML 代码:

<p>
<label>* Name</label>
</p>
<p>
<label>* Last Name</label>
</p>
<p>
<label>Mascot Name</label>
</p>

是否可以使用 jQuery 仅将颜色更改为字符 *? 我尝试使用函数find(),但我重复了标签上的所有字符。

【问题讨论】:

  • 什么时候需要换色?总是,还是来自某个事件?

标签: jquery colors


【解决方案1】:

Karim's 答案很好,但是在实现它时,我注意到它只会在每个字符中选择一个

标签,所以在这种情况下:

<p>
  <label>* Name</label>
  <label>* Last Name</label>
  <label>Mascot Name</label>
</p>

它不会工作。在这种情况下,如果将选择器替换为 "label:contains('*')" 没有问题,但是如果您想更改该特定字符的 每个 实例的颜色(或其他属性)怎么办?所以在这种情况下:

<p>
  * Name<br/>
  * Last Name<br/>
  Mascot Name
</p>

你真的需要别的东西(我知道它看起来不太好,但这是 Wordpress 的实际输出)。 我发现了这个:Change formatting of a specific character using css or jquery, Blazemonger's 答案在哪里可以解决问题!我在这里重复一遍:

$('selector').html(function(i,el) {
  return el.replace(/\*/g, '<span class="color">*</span>');
});​

【讨论】:

    【解决方案2】:

    我想我会用 CSS 来解决它:

    label:first-letter {
    
        color: #ff0000;
    
    }
    

    例如here

    【讨论】:

    • 也是一个别出心裁的但并不总是看到字符“*”
    • 虽然您可以结合使用 Karim 解决方案和 addClass :)
    【解决方案3】:

    如果您坚持使用脚本解决方案:

    $("p > label:contains('*')").each(function () {
        $(this).html($(this).html().replace("*", "<span class='red'>*</span>"));
    });
    

    Demo.

    【讨论】:

      【解决方案4】:

      您应该使用 css 来实现这一点。 请改用以下内容

      <label><span style="color:red">*</span> Name</label>
      

      这样就可以了。

      【讨论】:

      • 您最不想做的就是依靠 jQuery 来实现您的样式:) 如果可以使用 CSS,那就去做吧。即使您需要它动态更改,也可以使用.addClass() 添加一个类并在 CSS 中指定规则。
      • 但是可以插入 span 来寻找字符“*”吗?
      猜你喜欢
      • 2012-04-13
      • 2016-03-04
      • 2013-03-30
      • 2019-02-18
      • 2013-10-26
      • 2015-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多