jquery - 通过 .text() 推送背景颜色的十六进制代码值

标签 jquery css

我正在尝试从 <span> 读取十六进制代码标记并将其设置为 background color相同标签的 - 使用以下 jQuery 代码: 目前它工作正常,但它是特定的,并且使用变量而不是动态获取值。

$(document).ready(function() {
  var primeCol = $('.colorBlocks div:eq(0) span').text();
  $(".colorBlocks div:eq(0) span").css("background-color", primeCol);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <span>#0099cc</span>
</div>
<div>
  <span>Primary Color 2 is #OOffcc</span>
</div>

我需要使其动态,以便它使用 $(this).text()也许无需对任何 <span> 使用变量标签。另外,要从文本中识别十六进制代码,如第二个 <span> 中所示。标签。请问有人可以帮忙吗?我正在为此苦苦挣扎。

最佳答案

要实现此目的,您可以向 css() 方法提供一个函数,该函数将用于评估匹配集中的每个元素。从那里,您需要使用 :first-child 来匹配每个子 div 中的第一个元素,而不是所有子元素中的第一个。试试这个:

$(document).ready(function() {
  $('.colorBlocks div:first-child span').css('background-color', function() {
    return $(this).text();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="colorBlocks">
  <div>
    <span>#0099cc</span>
  </div>
  <div>
    <span>Primary Color 2 is #OOffcc</span>
  </div>
</div>
<div class="colorBlocks">
  <div>
    <span>#cc0000</span>
  </div>
  <div>
    <span>Primary Color 2 is #OOffcc</span>
  </div>
</div>

或者,要对所有范围执行此操作并查找其中的任何十六进制值,请删除 :first-child 选择器并使用正则表达式查找十六进制值:

$(document).ready(function() {
  $('.colorBlocks div span').css('background-color', function() {
    return /#[0-9A-F]{6}/gi.exec($(this).text());
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="colorBlocks">
  <div>
    <span>#0099cc</span>
  </div>
  <div>
    <span>Primary Color 2 is #00ffcc</span>
  </div>
</div>
<div class="colorBlocks">
  <div>
    <span>#cc0000</span>
  </div>
  <div>
    <span>Primary Color 2 is #00ffcc</span>
  </div>
</div>
<div class="colorBlocks">
  <div>
    <span>#00cc00</span>
  </div>
  <div>
    <span>Primary Color 3 is not specified</span>
  </div>
</div>

关于jquery - 通过 .text() 推送背景颜色的十六进制代码值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41853869/

相关文章:

javascript - 数组在手动写入时有效,但在从文本文件加载时无效

css - 是否有一个页面中所有元素的 CSS 选择器?

css - IE 不会识别不重复?

javascript - 使用 % 作为网格系统的高度

c# - 在 javascript 函数中使用 Razor 代码

javascript - 需要防止鼠标悬停在 jquery 中单击

javascript - asp.net json 显示奇怪的结果

html - 使用 Bootstrap 3 和 AngularJS 在输入字段后添加星号

css - HTML5 表单验证不适用于 Chrome 中的自动对焦

javascript - HTML,CSS : DataTables header padding behavior