隐藏JavaScript函数中作为参数传递的元素的父元素


hiding parent element of a element passed as argument in the JavaScript function

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

这是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访问来隐藏父块。但它没有起作用。我怀疑该函数无法通过元素访问父对象的if。我什么都试过了,但无济于事。所以尝试了用javascript更改元素的类名的变通方法,但仍然认为有更好的方法,因为我不希望错过什么。

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

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

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