Javascript 使用JQuery更改所有元素';同一类中的css样式
我想用classJavascript 使用JQuery更改所有元素';同一类中的css样式,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想用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 =
Liregion2
更改所有div
s的背景色。
我只想更改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>
您不需要遍历每个元素。试试这个
$('#FirstLine').click(function(){
$('.Liregion2').css("background-color" , "transparent");
event.stopPropagation();
});
不需要那种复杂的代码,.css()
函数本身迭代元素,并将css应用于所有元素
$('#FirstLine').click(function() {
$('.Liregion2').css("background-color" , "transparent");
});
试试这个:
$(document).on("click", "#FirstLine", function(){
$('.Liregion2').css("background-color" , "transparent");
});
css
方法在后台对集合进行迭代,无需使用每个
循环。此外,您的标记无效,li
元素应该是ul
/ol
元素的子元素。div
元素应替换为上述元素之一(尽管它不是语义标记)
似乎您只想操作父元素的css
属性。如果是这种情况,您可以使用.closest()
或.parent()
方法:
// 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类,并使用jQueryremoveClass
和addClass
方法来添加/删除它们。创建一个JSFIDLE.netCSS
在后台迭代集合,无需使用每个循环。此外,您的标记无效,li
应该是ul
/ol
元素的子元素。您使用的是内联css,内联css不能被覆盖,其次,您在div内部使用的标记有问题。不可能这样,您必须在div内部使用它。请解决您的问题。在单独的样式表中编写css,然后将其作为类或id选择器,而不是使用内联样式。@kimWong提供jsfiddle.net链接这比使用每个(在本例中),但这并不能解决问题。谢谢,但我可以使用吗?这合法吗?@KimWong不客气。不幸的是,这是无效的。每个浏览器将对其进行不同的解析。我建议只使用一个
ul
元素,将那些li
s作为子元素。然后,您可以将div
元素(或所需的任何有效标记)作为li
的后代。
// 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();
});