【问题标题】:Is this possible? Use jQuery to modify a string from inside a style tag [duplicate]这可能吗?使用jQuery从样式标签内修改字符串[重复]
【发布时间】: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() 将重写所有 &lt;style&gt; 并因此破坏其他规则。 .append().text() 将简单地附加 &lt;style&gt; 标签(我很确定)。我想要做的是动态更改&lt;style&gt; 标签而不附加它。
  • 必须像我上面使用replace() 那样解析字符串。就 DOM 而言,它都是文本。再次附加规则是最简单和最安全的。不知道为什么你会担心无关的规则

标签: javascript jquery html css


【解决方案1】:

JQuery 选择器基于 CSS 选择器语法。即 ID、Classes 和 HTML 显示标签。我相信他对你的问题的回答是否定的。

【讨论】:

  • 这就是我所担心的。我可以做类似$("style"."black").text("white") 的事情吗? (以伪代码为例。
  • 您要将文本更改为什么元素?如果它是一个段落,你会这样做。 $('p').css('color','white')
  • 没关系,谢谢! :)
猜你喜欢
  • 2011-11-24
  • 1970-01-01
  • 2023-03-25
  • 2011-03-24
  • 1970-01-01
  • 2020-01-21
  • 2018-08-04
  • 1970-01-01
相关资源
最近更新 更多