【问题标题】:jquery cannot change selected id css [closed]jquery无法更改选定的id css [关闭]
【发布时间】:2021-07-07 13:01:25
【问题描述】:

我在按 id 选择元素时遇到问题,首先我在我的 id 中使用括号,例如 categories[1] 等等。我刚刚意识到禁止在 id 中使用括号,我将其更改为就像这样 categories1 ...但我仍然无法选择我的元素。使用括号我尝试像这样转义它:

<script>
$( "#categories\\[<?php echo $categoryId ?>\\]" ).css( "margin-top", "-10px" );
</script>

它不起作用,当我将 id 更改为不带括号时,我正在使用这个:

<script>
$( "#categories<?php echo $categoryId ?>" ).css( "margin-top", "-10px" );
</script>

但它仍然不起作用。我以前也遇到过同样的问题,但我只是使用了 javascript 而不是 jquery 并且效果很好。这可能是什么问题?这个元素还有一个css文件,它指的是class,但我想我的代码应该覆盖它? 我刚刚直接尝试了&lt;style&gt;,它适用于这个:

    <style type="text/css">
    #categories<?php echo $categoryId ?> {
        margin-top: -10px;
    }
    </style>

为什么我的 jquery 代码不起作用?

编辑: 我错过了文件中的这个脚本行,这是一个有趣的错误。这解决了我的问题。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

【问题讨论】:

  • 避免像这样修改 CSS。为每个场景制作一个包含类的单独 CSS 文件,然后仅使用 JS/jQ 来更改元素的类。
  • &lt;?php echo $categoryId ?&gt;可能有问题??是不是 null 或者 smth else??
  • 我怀疑你在元素存在之前运行它。包裹在$(function(){ $( "#categories&lt;?php echo $categoryId ?&gt;" ).css( "margin-top", "-10px" );}) 中是否有效?
  • 我 100% 确定它不是 null 或任何东西,它是正确的值,因为我需要,它直接与 &lt;style&gt; 一起使用,所以情况并非如此,我会尝试 @charlietfl 解决方案

标签: php jquery css jquery-selectors


【解决方案1】:

你可以这样试试:

//$("[id='categories[<?php echo $categoryId ?>]']").css( "margin-top", "-10px" );
$("[id='categories[1]']").css({
  "color": "red",
  "margin-top": "10px"
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="categories[1]">abcd</div>

【讨论】:

  • OP 尝试过的 $("#categories\\[1\\]") 在这里也可以正常工作
  • 是的,我知道这只是另一种选择:)
  • 我的观点是,如果一个工作没有理由另一个不工作。问题的根源未在问题中显示
  • 这是我犯的愚蠢错误,我才意识到我的文件中没有&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt;。这解决了我的问题...感谢大家的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多