使用Jquery读取样式属性
我的页面上有类似的内容使用Jquery读取样式属性,jquery,background,styles,Jquery,Background,Styles,我的页面上有类似的内容 <div class="number_1" style="background-color:red"></div> <div class="number_2" style="background-color:yellow"></div> <div class="number_3"></div> <div class="number_4"></div> <div class
<div class="number_1" style="background-color:red"></div>
<div class="number_2" style="background-color:yellow"></div>
<div class="number_3"></div>
<div class="number_4"></div>
<div class="number_5" style="background-color:red"></div>
我不能通过添加背景色类来更改HTML代码!它一定是红色的
我需要这样的功能
for(var i=1; i<=5; i++){
if($('.number_'+i).hasBackgroundColor('red')){
//something
}else{
//somethign else
}
}
for(var i=1;i这里您可以得到背景色:
var backgroundColor = $('.number_'+i).css('background-color');
它将返回类似“rgb(245,180,5)”的内容。红色是“rgb(255,0,0)”
如果您更喜欢获取六边形值,例如红色为#ff0000,请使用以下函数:
function hexc(colorval) {
var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
delete(parts[0]);
for (var i = 1; i <= 3; ++i) {
parts[i] = parseInt(parts[i]).toString(16);
if (parts[i].length == 1) parts[i] = '0' + parts[i];
}
color = '#' + parts.join('');
}
函数hexc(colorval){
var parts=colorval.match(/^rgb\(\d+)\s*(\d+)\s*(\d+)$/);
删除(第[0]部分);
对于(var i=1;i,这里您可以得到背景色:
var backgroundColor = $('.number_'+i).css('background-color');
它将返回类似“rgb(245,180,5)”的内容。红色是“rgb(255,0,0)”
如果您更喜欢获取六边形值,例如红色为#ff0000,请使用以下函数:
function hexc(colorval) {
var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
delete(parts[0]);
for (var i = 1; i <= 3; ++i) {
parts[i] = parseInt(parts[i]).toString(16);
if (parts[i].length == 1) parts[i] = '0' + parts[i];
}
color = '#' + parts.join('');
}
函数hexc(colorval){
var parts=colorval.match(/^rgb\(\d+)\s*(\d+)\s*(\d+)$/);
删除(第[0]部分);
对于(var i=1;i,您可以尝试使用以rgb返回的方法
for (var i = 1; i <= 5; i++) {
if ($('.number_' + i).css("background-color") == "rgb(255, 0, 0)") {
//something
} else {
//somethign else
}
}
for(var i=1;i您可以尝试使用以rgb返回的方法
for (var i = 1; i <= 5; i++) {
if ($('.number_' + i).css("background-color") == "rgb(255, 0, 0)") {
//something
} else {
//somethign else
}
}
for(var i=1;icss('background-color')在您的案例“rgb(255,0,0)”中返回rgb中的颜色。css('background-color')在您的案例“rgb(255,0,0)”中返回rgb中的颜色。
for(var i=1; i<=5; i++){
if($('.number_'+i).css('background-color')=='red'){ // or ==rgb(255,0,0)
//something
}else{
//somethign else
}
}
for(var i=1;i试试这个
for(var i=1; i<=5; i++){
if($('.number_'+i).css('background-color')=='red'){ // or ==rgb(255,0,0)
//something
}else{
//somethign else
}
}
(变量i=1;i)的
然后,在循环中添加额外的逻辑/条件
像这样的
$(document).ready(function() {
$.each($('div') , function(index) {
style=$(this).attr('style');
if(style=='background-color: red;' || style=='background-color:red') {
alert($(this).attr('class')+' is red!');
}
});
});
然后,在循环中添加额外的逻辑/条件
像这样的
$(document).ready(function() {
$.each($('div') , function(index) {
style=$(this).attr('style');
if(style=='background-color: red;' || style=='background-color:red') {
alert($(this).attr('class')+' is red!');
}
});
});
.attr('style')='background-color:red'似乎不起作用
一个空间将产生不同的结果:
$('').attr('style')=='background color:red'
假的
$('').attr('style')=='background color:red'
真的.attr('style')=='background-color:red'似乎不起作用
一个空间将产生不同的结果:
$('').attr('style')=='background color:red'
假的
$('').attr('style')=='background color:red'
true您是如何使用.css()的?JQuery有.css()用于此目的。请查看他们的文档:。他们也有一个很好的演示。实际上,attr('style')工作正常,IE返回的字符串与其他浏览器不同。您是如何使用.css()的?JQuery有.css()为此,请看一下他们的文档:。他们也有一个很好的演示。实际上,attr('style')正在工作,只是IE返回了与其他浏览器不同的字符串。我认为css('background-color')将始终返回'rbg(…,…,…,…)“@Ricola3D:是的,rgb
或者我认为在某些浏览器上你可能会得到一个十六进制的颜色代码。当然不是“red”
@T.J.Crowder只是出于好奇(为了将来的作品),什么版本的浏览器会返回一个六进制代码?我认为css('background-color')总是会返回'rbg(…,…,…,…)“@Ricola3D:是的,rgb
或者我认为在某些浏览器上你可能会得到一个十六进制的颜色代码。当然不是“red”
@T.J.Crowder只是出于好奇(为了将来的工作),什么版本的浏览器会返回一个十六进制代码?@user:这是一个改进。不过要注意,不同的浏览器以不同的方式返回值(例如,有空格和没有空格时,它们有时返回rgba
,而不是rgb
,我认为有些甚至有时返回十六进制代码)。@user:这是一种改进。不过,请注意,不同的浏览器以不同的方式返回值(例如,有空格和没有空格时,有时它们返回rgba
,而不是rgb
,我认为有些甚至有时返回十六进制代码)。我认为有些浏览器可能返回rgba
,而不是rgb
,我认为有些浏览器甚至有时返回十六进制代码。只是FWIW。我认为有些浏览器可能返回rgba
,而不是rgb
,我认为有些浏览器甚至有时返回十六进制代码。只是FWIW。