2012-07-19 117 views
0

我有一個應用程序,我必須爲事件顯示一個計時器,並且事件結束時,該計時器(包含它的塊)應該隱藏。我已經爲父div元素(該塊)設置了CSS,因爲該計時器元素具有動態ID(它具有與類名一起的事件ID號)。隱藏在JavaScript函數中作爲參數傳遞的元素的父元素

這是JavaScript代碼:

function GetCount(deal_year,deal_month,deal_date,deal_box) 
    { 
    dateFuture = new Date(deal_year,deal_month,deal_date,00,00,00); 

    // alert(dateFuture); return false; 

dateNow = new Date();         //grab current date 
//alert(dateNow); 
span = dateFuture.getTime() - dateNow.getTime(); //calc milliseconds between dates 
delete dateNow; 

// if date has passed 
if(span <= 0){ 

      x=document.getElementById("dealbox"); 
      x.parentNode.getAttributeNode("style").value="display:none"; 

     } 
    else { // date is still good 
      // convert from milliseconds to hr/m/s... 
      // and save them in diff variable(code is long so avoided that) 


     document.getElementById(deal_box).innerHTML="<span>"+out+" 
    </span><br/><strong>days : hours : minutes : seconds</strong>"; 


    setTimeout("GetCount('"+deal_year+"','"+deal_month 
         +"','"+deal_date+"','"+deal_box+"')", 1000); 

答這是PHP代碼

if(strtotime("now") < strtotime($end_date)) { ?>      

     <div class ="timer_box" id="timer" style="float:right; display: block;" > 

     <b><div id="deal_box<?php echo $id; ?>"></div></b> 
     </div> 

     <script type="text/javascript"> 
    GetCount(<?php echo $timer_array[0]; ?>,<?php echo $timer_array[1]-1; ?>,<?php 
echo $timer_array[2]; ?>,'<?php echo 'deal_box'.$id; ?>','<?php echo 'timer'; ?>'); 
     </script> <?php } ?> 

我試圖通過使用傳遞到函數DOM元素的parentNode訪問隱藏母塊。 但它沒有奏效。我懷疑函數不能通過元素訪問父元素。 我試過每一件事,但沒有幫助。所以嘗試了通過javascript改變元素的類名的解決方法,但仍然認爲shd是一個更好的方法,因爲我是noob n希望丟失一些東西。

回答

0

由於你的php腳本顯示,你有一個數字(id)後綴「deal_box」,但你只需使用getElementById(「deal_box」)在JavaScript中訪問它?

我的意思是,你錯過了ID? 在以下兩種情況下,您無法對給定的Dom進行設計:1,您根本沒有通過正確的選擇器獲取Dom; 2,你的風格設置代碼有一些語法問題;

建議您使用console.log()或其他函數來跟蹤您的代碼。

+0

嗯,我認爲這是func的局部變量,幷包含傳遞給它的值,因爲它已被聲明。 或我需要調用它與id的確切名稱? 我嘗試着爲div創建一個類名,並且把我的css改成這個類,但仍然是一樣的。 – 2012-07-19 06:29:53

相關問題