0

我有一个应用程序,我必须在其中显示一个事件的计时器,当事件结束时,该计时器(包含它的块)应该隐藏。我已经为父 div 元素(该块)设置了 CSS,因为计时器元素具有动态 ID(它具有事件的 ID 号以及类名)。

这是 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);

Ans 这是 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 访问来隐藏父块。但它没有用。我怀疑该函数无法通过元素访问父级的 if 。我尝试了每件事,但没有帮助。所以尝试了通过javascript更改元素的类名的解决方法,但仍然认为有更好的方法,因为我是菜鸟,希望错过一些东西。

4

1 回答 1

0

正如您的 php 脚本所示,您有一个后缀为“deal_box”的数字(id),但您只需使用 getElementById("deal_box") 在 javascript 中访问它吗?

我的意思是,你想念身份证吗?通常在两种情况下,您无法设置给定 Dom 的样式: 1,您根本没有通过正确的选择器获得 Dom;2、你的样式设置代码有一些语法问题;

建议您使用 console.log() 或其他函数来跟踪您的代码。

于 2012-07-19T04:33:05.273 回答