2012-07-19 2 views
0

나는 이벤트에 대한 타이머를 표시해야하는 앱이 있으며 이벤트가 끝나면 해당 타이머 (블록 포함)가 숨겨져 있어야합니다. 타이머 요소가 동적 id를 가지고 있기 때문에 부모 div 요소 (그 블록)에 대한 CSS를 설정했습니다 (id에는 classname과 함께 이벤트가 없습니다).자바 스크립트 함수에서 인수로 전달 된 요소의 부모 요소를 숨기기

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 By의이 난 함수에 전달 DOM 요소 인 parentNode 액세스를 사용하여 상위 블록을 은폐하려고 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 } ?> 

에게이다

자바 스크립트 코드이다. 하지만 작동하지 않았습니다. 나는 요소를 통해 부모의 경우 함수가 접근 할 수 없다고 생각한다. 나는 모든 것을 시도했지만 아무 도움도받지 못했다. 그래서 javascript에 의해 요소의 클래스 이름을 변경의 해결 방법을 시도했지만 여전히 더 나은 방법이 될 것 같아요, 나는 멍청한 놈입니다.

답변

0

PHP 스크립트가 보여 주듯이 "deal_box"라는 접미사가 붙었지만 getElementById ("deal_box")를 사용하여 javascript로 액세스 할 수 있습니까?

나는 이드를 놓치겠습니까? 대개 두 가지 경우에 주어진 Dom의 스타일을 지정하지 않습니다. 1, 올바른 선택기를 통해 Dom을 얻지 못합니다. 2, 스타일 설정 코드에 구문 오류가 있습니다.

console.log() 또는 다른 기능을 사용하여 코드를 추적하도록 제안하십시오.

+0

글쎄, 나는 func에 지역 변수라고 생각하고 그것으로 전달 된 값이 선언 된대로 포함되어 있다고 생각한다. 아니면 정확한 이름을 id로 지정해야합니까? 나는 div에 클래스 이름을 만들고, 그 클래스에 내 CSS를 refreneceing 함께 노력했지만 여전히 동일합니다. –

관련 문제