Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改css:if和ID具有特定类之前_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 更改css:if和ID具有特定类之前

Javascript 更改css:if和ID具有特定类之前,javascript,jquery,html,css,Javascript,Jquery,Html,Css,因此,如果一个div有一个特定的类,我试图让Jquery将一个特定的css更改为:before <ul> <li id="first" class="active">first</li> <li id="second">second</Li> </ul> 第一个 第二次 如果第一个li是活动的,我希望Ul的:before具有特定的左和右属性,但是如果第二个li是活动的,它将具有不同的左和右属性 我用Jquery添

因此,如果一个div有一个特定的类,我试图让Jquery将一个特定的css更改为:before

<ul>
 <li id="first" class="active">first</li>
 <li id="second">second</Li>
</ul>
  • 第一个
  • 第二次
如果第一个li是活动的,我希望Ul的:before具有特定的左和右属性,但是如果第二个li是活动的,它将具有不同的左和右属性 我用Jquery添加了这些类,我试着这样做

if ( $( "#first" ).is( "active" )) {
  $('ul[data-style-id='slider1']:before').append('<style>.left:175px;right:1188px;}</style>');
}
if($(“#first”).处于(“活动”)状态{
$('ul[data style id='slider1']:before').append('.left:175px;right:1188px;}');
}
编辑:
我有一个jquery代码,它给出了左属性和右属性,但它只对第一个属性有效,所以我尝试使用不同的脚本只修改第一个属性,因为它不起作用,我尝试给它类似于答案中的属性,但每个LI都有特定的属性,但它仍然有效。。。它只读第一行

在这里它工作得很好,但在我的浏览器中它不起作用,所以我的问题是,如果选择了第一个链接,如何定义特定的左右参数

if( $('ul li').hasClass('active') ) {
   $('head').append('<style>ul:before{left:175px !important;right:1188px !important;}</style>');
}

我认为您根本不需要jQuery,它可以通过简单的CSS实现:

HTML

<ul>
<li id="first" class="line-item active">first</li>
<li id="second" class="line-item">second</Li>
</ul>
.line item
类仅用于常量引用


希望有帮助

我不认为可以通过javascript直接设置伪元素样式。伪元素(:before和:after)不是DOM的一部分,因此不能使用jQuery(或原生JS)对其进行操作,也不能向其添加内容。我可以使用jqurey添加css来覆盖当前css吗?尝试为每个元素创建不同的css类“left and right properties”,然后通过jQuery(或原生JS)将它们附加到对象或从对象中移除。这适用于单击第一个li时,但它只是让它看起来总是让类处于活动状态。知道为什么吗?如果第一个li具有“活动”状态,它就会起作用“类,如果您只需在按下时添加活动类名,则这是另一种情况。至于一个问题,我认为这是解决办法。使用此编辑器您必须删除此脚本标记才能禁用其效果。。。(或在可用时使用其
disabled
属性)我有一个jquery代码,它给出了左属性和右属性,但它只对第一个属性有效,所以我尝试使用不同的脚本只修改第一个属性,因为它不起作用,我尝试给它类似于答案中的属性,但每个LI都有特定的属性,但它仍然有效。。。它只读取第一个li中添加的第一个活动类,您需要另一个Jquery行来在序言中添加活动类,这是因为当我单击第二个li时,我无法更改它的属性,这是不受支持的
<ul>
<li id="first" class="line-item active">first</li>
<li id="second" class="line-item">second</Li>
</ul>
.line-item { /* Styles */ }
.line-item::before { /* Styles */ }
.line-item.active { /* Styles */ }
.line-item.active::before {
  left: 175px !important;
  right: 1188px !important;
}