나는 이벤트에 대한 타이머를 표시해야하는 앱이 있으며 이벤트가 끝나면 해당 타이머 (블록 포함)가 숨겨져 있어야합니다. 타이머 요소가 동적 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에 의해 요소의 클래스 이름을 변경의 해결 방법을 시도했지만 여전히 더 나은 방법이 될 것 같아요, 나는 멍청한 놈입니다.
글쎄, 나는 func에 지역 변수라고 생각하고 그것으로 전달 된 값이 선언 된대로 포함되어 있다고 생각한다. 아니면 정확한 이름을 id로 지정해야합니까? 나는 div에 클래스 이름을 만들고, 그 클래스에 내 CSS를 refreneceing 함께 노력했지만 여전히 동일합니다. –