【发布时间】:2016-07-24 15:32:18
【问题描述】:
假设你有,
<!doctype html>
<html>
<head>
<script src="jQuery.js"></script>
<style>
html { ... }
body { background: black }
</style>
</head>
<body>
...
</body>
</html>
我知道可以使用像 $("body").css("background", "white") 这样的 jQuery,但是否可以使用 jQuery 将 black 文本定位并替换为 white 标记内的 white?
我不想简单地追加body { background: white },比如$("style").append("body { background: white}"),也不想使用.html,因为我不想重写整个标签,我想修改一个style 标签内的字符串。这可能吗?
谢谢!
(如果您要将其标记为重复,请评论或回复任何推断方法的工作原理。)
【问题讨论】:
-
很多“我不想”,但没有给出真正的理由
-
对 jQuery 的限制感到好奇。这真的很有帮助。如果可以的话,更喜欢使用最好的 jQuery。
-
在样式标签上使用 html() 或 text() 有什么问题?
$("style").text(function(_, existing){ return existing.replace('black','white'); })。附加整个规则似乎最简单 -
好问题。
.html()将重写所有<style>并因此破坏其他规则。.append()和.text()将简单地附加<style>标签(我很确定)。我想要做的是动态更改<style>标签而不附加它。 -
必须像我上面使用
replace()那样解析字符串。就 DOM 而言,它都是文本。再次附加规则是最简单和最安全的。不知道为什么你会担心无关的规则
标签: javascript jquery html css