通过JavaScript检测html元素的CSS属性值
Detecting CSS property value of a html element by JavaScript
取消通知它是可以的,但if没有执行。这里是程序堆栈。有没有办法检测div的显示属性是"bloc"还是"none"?
for(i=1;i<=10;i++)
{
alert("Hamdun Soft Past Job Will be Deleted");
if(document.getElementById(i).style.display=="block")
document.getElementById(i).innerHTML="Hamdun Soft Is Clear Now";
}
哦!请记住,从id=1到10的div,一个display="block",所有9都是"none"。我用另一个JavaScript程序做到了这一点。但现在我需要检测"块"。储罐。
问题是Element.style.display
只有在元素具有内联样式时才能工作。你需要得到计算风格:
for(i=1;i<=10;i++){
var elem = document.getElementById(i);
if((elem.currentStyle ? elem.currentStyle.display : getComputedStyle(elem, null).display) == 'block')
elem.innerHTML="Hamdun Soft Is Clear Now";
}
<div id="1">aaa</div>
<div id="2">aaa</div>
<div id="3">aaa</div>
<div id="4">aaa</div>
<div id="5">aaa</div>
<div id="6">aaa</div>
<div id="7">aaa</div>
<div id="8">aaa</div>
<div id="9">aaa</div>
<div id="10">aaa</div>
注意:首先检查elem.currentStyle
,因为IE可以使用它。
正如Zigmantas所说,问题出在id上。在HTML4中,id需要以字母开头。即使HTML5中允许数字ID,也可能出现其他问题。
请注意,需要在元素上显式设置样式。在本例中,第三个div确实具有样式,但不是内联的,因此它没有被选中。第一个是,正如你所要求的。
<html>
<head>
<style type="text/css">
div:last-child <!-- #3 does not work in chrome -->
{
display:block; color:red
}
</style>
</head>
<body>
<section>
<div id="1" style="display:block;color:red">one</div>
<div id="2" >two</div>
<div id="3" >three</div>
</section>
</body>
<script>
for(i=1;i<=3;i++)
{
alert("Hamdun Soft Past Job Will be Deleted");
// getComputedStyle would probably be better.
// as would using an id starting with a letter.
if(document.getElementById(''+i).style.display=="block")
document.getElementById(''+i).innerHTML="Hamdun Soft Is Clear Now";
}
</script>
</html>
尝试document.getElementById(i).style.display==""
,因为"display"在初始时没有指定,所以它将默认值设置为"。
function Display()
{
for(i=1;i<=6;i++)
{
if(document.getElementById(i).style.display=="block" || document.getElementById(i).style.display=="")
document.getElementById(i).innerHTML="Hamdun Soft Is Clear Now";
}
}
<div id="1" style="display:none;">111</div>
<div id="2" style="display:block;">222</div>
<div id="3">333</div>
<div id="4" style="display:inline;">444</div>
<div id="5" style="display:list-item;">555</div>
<div id="6" style="display:initial;">666</div>
<input type="button" onclick="Display()" value="Press">
相关文章:
- 谷歌图表-如何更改整个表的css属性
- 将css属性替换为变量
- 使用Jquery/Javascript替换CSS属性
- 如何使用JavaScript查找未定义的CSS属性的值
- 在jquerymobile中设置按钮css属性的动画
- JavaScript无法提取引号css属性
- 使用AngularJS动态更改css属性
- 使用javascript获取具有特定CSS属性的所有元素
- 将css属性添加到对象的集合中
- 取消img的css属性宽度和高度(不能使用“auto”)
- CSS属性更改侦听器
- 如何更改与Backbone集合中的模型相关联的几个元素的css属性
- 如何使用java脚本或jQuery基于相同的特定css属性对元素进行分组
- 如何在不链接/jquery的情况下使用方法应用css属性数组
- 在 javascript css 属性中使用变量
- 在jQuery中链接时CSS属性不起作用
- jQuery检查CSS宽度是否大于0,然后添加CSS属性
- 使用循环增加css属性值
- 更改类所选空输入的CSS属性
- 无法查找元素'手动加载CSS文件时的CSS属性