所以我有一个包含背景图像的DIV。在某些情况下,这个图像是“直接”设置的,在其他情况下,它是生成的SVG。我希望能够识别DIV何时包含SVG字符串。
我的两个部门:
<div class="cover my-1" style="background-image: url('something.jpg');">Div 1 QQ</div>
<div class="cover my-2" style="background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc...=');">Div 2</div>
我试着这样做:
$(document).ready(function() {
$(".cover.my-1:contains(QQ)").css("background-color", "yellow");
$(".cover.my-2:contains(svg+xml)").css("background-color", "yellow");
});
因此,DIV 1随着QQ的发现而改变。DIV 2不会改变,因为在DIV字段中找不到“svg+xml”(但在样式中)。如何识别DIV 2中的“svg+xml”?
我希望在DIV的样式中识别“svg+xml”
3条答案
按热度按时间bd1hkmkf1#
:contains
只对元素的内容起作用。您可以使用filter
和includes
来选择带有svg背景的项目vaqhlq812#
如果你事先知道你的
svg+xml
总是在style
属性中,你可以使用[attr*=value]
attribute selector。这将检查value
是否存在于attr
中。fcg9iug33#
这个代码为我工作。如果包含
data:image/svg+xml
,则将文本颜色变为红色,如果在background-url链接中没有data:image/svg+xml
,则将文本颜色变为黑色**这里是一个例子:**您可以运行下面的片段并签入此片段DIV包含SVG背景图像,因此在文档加载时,DIV的文本将为红色
**这里是一个例子:**您可以运行下面的片段并签入此片段DIV包含PNG背景图像,因此在文档加载时,DIV的文本将为黑色
希望这个例子对你有帮助