javascript - 需要 Javascript(或 JQuery)长字符串搜索和 CSS 插入帮助
问题描述
我需要一种解决方案来从第三方系统中创建的部分动态生成的页面中搜索字符串并应用 CSS 字符串。我发现可能有助于完成这项工作的最接近的解决方案如下:
$(document).ready(function () {
$('*').filter(function() {
return $(this).css('background-color') == "rgb(255, 255, 255)"
}).css('background-color', '#000')
});
但是,我需要这个修改来搜索这个字符串:
<div class="ls-wrapper ls-in-out" data-slide-index="1" style="z-index: 116; margin-left: 0px;
然后,有效地将一个新的 CSS 字符串插入到同一个元素样式表中,因此生成的代码的行为如下所示:
<div class="ls-wrapper ls-in-out" data-slide-index="1" style="z-index: 116; **new-css: property;** margin-left: 0px;
这可以做到吗?
解决方案
您可以使用单个选择器字符串来实现此目的:获取标签定义的 HTML:
div class="somethingElse ls-in-out" data-slide-index="1" style="z-index: 116; margin-left: 0px;"
并将其转换为选择器字符串:
div.ls-wrapper.ls-in-out[data-slide-index="1"][style="z-index: 116; margin-left: 0px;"]
(无前缀div
表示标签名称;带点前缀的子字符串表示类;紧跟在 a 内的字符串[
表示属性名称,引号内的值表示属性值。)
只需将其传递给 jQuery,然后您可以css
适当地设置,不需要.filter
:
$('div.ls-wrapper.ls-in-out[data-slide-index="1"][style="z-index: 116; margin-left: 0px;"]')
.css('background-color', 'yellow');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="ls-wrapper ls-in-out" data-slide-index="1" style="z-index: 116; margin-left: 0px;">foo</div>
<div class="somethingElse ls-in-out" data-slide-index="1" style="z-index: 116; margin-left: 0px;">bar</div>
<div class="ls-wrapper ls-in-out" data-slide-index="1" style="z-index: 116; margin-left: 0px;">baz</div>
从技术上讲,您也可以单独使用 CSS 来实现这一点,使用相同的选择器字符串,但不确定这是否足够灵活以满足您的目的:
div.ls-wrapper.ls-in-out[data-slide-index="1"][style="z-index: 116; margin-left: 0px;"] {
background-color: yellow;
}
<div class="ls-wrapper ls-in-out" data-slide-index="1" style="z-index: 116; margin-left: 0px;">foo</div>
<div class="somethingElse ls-in-out" data-slide-index="1" style="z-index: 116; margin-left: 0px;">bar</div>
<div class="ls-wrapper ls-in-out" data-slide-index="1" style="z-index: 116; margin-left: 0px;">baz</div>
如果在您描述的字符串之后style
包含更多style="
内容,而不是,请使用style^=
检查style
属性是否以所需的字符串开头:
div.ls-wrapper.ls-in-out[data-slide-index="1"][style^="z-index: 116; margin-left: 0px;"]
推荐阅读
- node.js - 在 Heroku 上部署 Mern Stack 应用程序时出错
- shell - 如何使用 shell 脚本命令将数据发送到 TCP 端口
- javascript - Ramda 对这两个函数都应用一个参数并自由组合它们
- javascript - 当只发生第一个事件时,如何考虑第二个事件?
- swift - 尝试使用 swift 包内部的权利访问 CloudKit 数据库(测试)
- python - Qt 应用程序在运行时因分段错误而崩溃
- jupyter-lab - Jupyter 实验室标题在无意时展开(遍历它们)
- reactjs - 使用 React Hooks 获得“太多重新渲染”错误
- react-native - 如何使用 expo-file-system 创建 .DOC 文件?
- excel - 满足条件时插入“是”