将文本插入 HTML 样式标签 - JavaScript

Insert Text Into an HTML Style Tag - JavaScript

我在 HTML code 标签中有一些 CSS 文本,我想将其插入到页面上的 <style> 标签中。

我可以隔离文本内容,但似乎不允许我使用 .textContent 将此文本内容放入样式标签中 - 是否无法在 JavaScript?

代码笔:https://codepen.io/emilychews/pen/YzydmGb

// GET TEXT CONTENT OF CODE TAG
var CSSInner = document.getElementById("language-css-js").textContent;

// INJECT TEXT CONTENT BETWEEN STYLE TAGS
function resultInsertCSS() {
  document.getElementById("result-pane-style-tag").textContent = CSSInner;
}

resultInsertCSS();
<code id="language-css-js">
  h2 {
  line-height: 1.2;
  }
  p {
  line-height: 1.5;
  }
</code>

<style id="#result-pane-style-tag"></style>

当然可以。直接指定样式可能会更好,但如果您只想按照您描述的方式进行操作,这里有一个工作示例。

https://repl.it/@nicholashazel/ExpertSpecializedStructs

<code id="language-css-js">
  h2 {
  line-height: 1.2;
  color: red;
  }
</code>

<style id="result-pane-style-tag"></style>
<h2>Hello</h2>
<script>
  let stuff = document.getElementById('language-css-js').innerHTML;
  document.getElementById('result-pane-style-tag').textContent = stuff;
</script>

此外,如其他答案中所述,它是一个 ID 的事实本身就赋予它 # 属性,因此将其添加到 ID 中并不重要。

ID应该是result-pane-style-tag
在 CSS 或 jQuery 中引用 ID,您将使用 #result-pane-style-tag,但在 getElementById 中,您只需将其作为其命名来引用。

<style id="#result-pane-style-tag"></style>

应该是

<style id="result-pane-style-tag"></style>

没有#.

删除 id 前的#,下面的代码应该可以工作:

// GET TEXT CONTENT OF CODE TAG
var CSSInner = document.getElementById("language-css-js").innerHTML;

// INJECT TEXT CONTENT BETWEEN STYLE TAGS
function resultInsertCSS() {
  document.getElementById("result-pane-style-tag").textContent = CSSInner;
  document.getElementById("language-css-js").innerHTML=""
}

resultInsertCSS();