簡體   English   中英

用JavaScript檢測html元素的CSS屬性值

[英]Detecting CSS property value of a html element by JavaScript

直到警報可以,但是if沒有執行。 這里是程序堆棧。 有什么方法可以檢測div的display屬性,即“ 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,一個人的顯示=“ 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> 

注意:因為IE可以使用this,所以首先檢查elem.currentStyle

就像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"> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM