当前位置: 首页 > 知识库问答 >
问题:

使用JQuery更改同一类中所有元素的css样式

敖永丰
2023-03-14

我想用classLiregion2更改所有divs的背景色。我只想更改div背景色,而不是li。但是,我的代码只更改了一个div元素!我怎样才能让它影响到所有人?

以下是我的HTML5代码:

<div class = "Liregion2" id = "LineBock1" style ="padding-bottom:3%;padding-left:10%;background-color:#ff9900"> 
 <li>
   <a href="#" id = "FirstLine" style="color:#fff;text-decoration: none" >1號線</a>
 </li>
</div>  
<div class = "Liregion2" id = "LineBock2" style ="padding-bottom:3%;padding-left:10%;">             
 <li>
   <a href="#" id = "SecondLine" style="color:#009999;text-decoration: none" >2號線</a>
 </li>
</div>  
<div class = "Liregion2" id = "LineBock3" style ="padding-bottom:3%;padding-left:10%;"> 
 <li>
   <a href="#" id = "ThirdLine" style="color:#ff3366;text-decoration: none" >3號線</a>
 </li>
</div>  
<div class = "Liregion2" id = "LineBock4" style = "padding-left:10%;">  
 <li>
  <a href="#" id = "ForthLine" style="color:#0066ff;text-decoration: none" >4號線</a>
 </li>
</div>  

这里是JQuery:

$('#FirstLine').click(function(){
    $('.Liregion2').each(function( index , element  ){
            $(element).css("background-color" , "transparent");
    });     
    event.stopPropagation(); 
});

共有3个答案

颜修为
2023-03-14

不需要那种复杂的代码,。css()函数自身遍历元素,并将css应用于所有元素。

$('#FirstLine').click(function() {
    $('.Liregion2').css("background-color" , "transparent");
});
宋鸿德
2023-03-14

您不需要遍历每个元素。试试这个,

$('#FirstLine').click(function(){
    $('.Liregion2').css("background-color" , "transparent");
    event.stopPropagation(); 
});
翟俊
2023-03-14
匿名用户

css方法在幕后迭代集合,没有必要使用每个循环。此外,您的标记是无效的,li元素应该是ul/ol元素的子元素。div元素应替换为上述元素之一(尽管它不是语义标记)。

似乎您只想操作父元素的css属性。如果是这种情况,您可以使用。最近的()。父()方法:

// Do not miss the `event` object if you want to use it
$('.Liregion2 a').click(function(event) { 
    $(this).closest('.Liregion2').css("background-color" , "transparent");
    event.stopPropagation(); 
});

建议避免使用内联样式,这样会使标记无法维护。您可以声明CSS类,并使用jQueryremoveClassaddClass方法添加/删除它们。

 类似资料:
  • 问题内容: 我有3个div。 像这样: 他们将充满文字。我不确定多少。问题是,所有高度都必须相等。 我如何使用jQuery(或CSS)查找DIV最高的并将其他两个设置为相同的高度,从而创建3个相等高度的DIV。 这可能吗? 问题答案: 您不能轻松地通过高度选择或在CSS中进行比较,但是jQuery和一些迭代应该可以轻松解决此问题。我们将遍历每个元素并跟踪最高的元素,然后再次遍历并将每个元素的高度设

  • 问题内容: 我想将CSS文件应用于页面中的具体DIV。这是页面结构: 我试图应用CSS文件的规则来编辑它(CSS文件太大): 但是该解决方案不起作用。那么,我该怎么做呢? 问题答案: 您可以尝试: 等等,这就是您想要的吗?

  • 问题内容: 我需要使用jQuery更改元素的ID。 显然这些不起作用: 我发现可以通过以下代码实现它: 但这对我来说似乎不对。必须有更好的方法,不是吗?另外,如果没有,我可以使用什么其他方法代替显示/隐藏或其他效果?显然,我不想每次都仅显示/隐藏或影响元素,而只是更改其ID。 (是的,我是jQuery新手。) 编辑 在这种情况下,我不能使用类,我必须使用ID。 问题答案: 您的语法不正确,应将值作

  • 问题内容: 我有以下代码 如何将标签替换为标签,但保留所有其他属性和信息? 问题答案: 这是使用jQuery的一种方法: 更新 ,这是一个插件:

  • 问题内容: 我有一个CSS课 我想使用Jquery在事件上执行类似的操作: 这行不通。这是错误的方法吗?我应该使用addClass()和removeClass()吗? 编辑:我想出了我的问题。实际上,此命令是有效的。在我的特定应用程序中,在使用命令之前,我没有使用类创建元素,因此在创建元素时,没有任何改变。 基本上,此命令不会更改CSS样式规则,只会更改使用该类的元素。 问题答案: 将在页面上找到

  • 问题内容: 是否可以通过JavaScript更改CSS伪元素样式? 例如,我想像这样动态设置滚动条的颜色: 而且我还希望能够告诉滚动条这样隐藏: 但是,这两个脚本都返回: 未捕获的TypeError:无法读取null的属性“样式” 还有其他解决方法吗?跨浏览器的互操作性并不重要,我只需要它在Webkit浏览器中即可工作。 问题答案: 编辑 : 从技术上讲,有一种通过JavaScript直接更改CS