【问题标题】:How to remove a <style> element with jquery?如何使用 jquery 删除 <style> 元素?
【发布时间】:2015-02-02 00:32:31
【问题描述】:

所以有了这个网站,我想改变风格的最新变化,因为我认为它丑陋且无用。 我找到了坏的部分,但奇怪的是我似乎无法删除它。

<div id="regularMenu">
<ul class='menu2'>
 <li>
    <a href="/linkA" class="notcurrent">link1</a>
 </li>
 <li>
    <a href="/linkB" class="notcurrent">link2</a>
 </li>
 <li>
    <a href="/linkC" class="notcurrent">link3</a>
 </li>
 <style>
   a, a:visited { color: #832; }
   #menu a, #menu a:visited { color: #832; }
   .menu2 li a, .menu2 li a:visited { color: #832; }
 </style>
</ul>
</div>

我试过了

 $('.menu2> *:last-child').remove();

 $('/html/body/div[3]/div/ul/style').remove();

那是 css 路径。我用萤火虫复制了它。 也尝试使用复制的 Xpath 但是:(

我也试过了:

 $('a').css("color", "#269");

这行得通,但它也覆盖了旧的 css 规则。我宁愿保留它。

我尝试寻找答案,但找不到任何帮助。所以现在我希望有人可以帮助我。

谢谢!

【问题讨论】:

  • 您要删除整个style 块吗?还是样式块中中的特定样式?此外,列表元素(ulol)的唯一有效子元素是 li 元素。
  • 我认为&lt;ul&gt; 中的&lt;style&gt; 无效。您确定 DOM 是按照您假设的方式构建的吗?
  • 是的,我希望删除该样式块。我直接从源代码复制/粘贴了 HTML 部分。通过在 ul 中添加样式,不知道作者在想什么。

标签: jquery html


【解决方案1】:

你试过了吗:

$('.menu2 style').remove();

【讨论】:

    【解决方案2】:

    如果您保留样式块,则应该保留它。用它来改变颜色:

    $('a').css("color", "#269");
    

    这个可以改回来

    $('a').css("color", "");
    

    它应该回到锚标记而不是内联样式的规则。

    【讨论】:

      【解决方案3】:

      你需要

      $('.menu2 > style').remove();
      

      see demo here

      【讨论】:

        【解决方案4】:

        使用document.styleSheets 查找所有使用的样式表,当找到不需要的样式表时,将disabled 设置为true。

        更多信息:

        1. https://developer.mozilla.org/en/document.styleSheets
        2. http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet

        据我所知,它适用于所有现代浏览器。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-07-16
          • 2015-07-08
          • 1970-01-01
          • 2017-08-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多