Грешка "Cannot read property".

sentenello

Registered
Здравейте

Създал съм два дива като при килкането на единия, другия става видим, а това го правя с display:none i display:block...
Само че хрома ми показва че има грешка като се сменя img на diva.

грешката която ми изписва е.
Uncaught TypeError: Cannot read property 'src' of null

реда който ми показва е
Код:
if (minusa.src == "http://saita.com/moretvprogramsplus.png") {

Целия код е
Код:
<script type="text/javascript">
function changeimg(id) {
	var minusa = document.getElementById(id);
	
	if (minusa.src == "http://saita.com/moretvprogramsplus.png") {
	minusa.src = "http://saita.com/moretvprogramsminus.png";
	}
		else {
		minusa.src = "http://saita.com/moretvprogramsplus.png";
		}
	}
	</script>

П.С. Въпреки грешката, кода си извежда това което трябва.
 
Ако не се лъжа, скритите обекти по този начин в хром допринасят за това съобщение, пробвай да го смениш, ако всичко е видимо, т.е. display:block и тогава виж дали ще имаш подобно съобщение. Направи дивовете да са ти видими и виж дали ще сменя картинките или ще връща грешка. Ако пак дава грешка имаш проблем в логиката някъде
 
По погрешка съм сложил смотана точка тук
Код:
onclick='changeimg(".minusa
и от там ми идва грешката...

Само че сега ми излезе друг проблем и направо ще питам в тази тема.

В момента ползвам
Код:
  function tvmatch(id) {
       var e = document.getElementById(id);
       if(e.style.display == 'block')
          e.style.display = 'none';
       else
          e.style.display = 'block';
    }

Но по този начин мога да изкарам само един скрит див, защото може да има само 1 елемент с ИД=1 примерно.

Сетих се веднага да променя скритите елементи да са със класс вместо ИД, но нещо не можах да преправя кода.

пробвах с
Код:
  function tvmatch(id) {
       var e = document.getElementsByClassName('tvsubmatch');
       if(e.style.display == 'block')
          e.style.display = 'none';
       else
          e.style.display = 'block';
    }

но не стана.

ето и реалните ми два реда от код, който трябва да преработя за да стане с класове.


Код:
<div id='match <?php echo $i;?>' onclick='tvmatch("tvsubmatch<?php echo $i;?>")'  style='cursor:mouse;'>
				<img id='minusa<?php echo $i;?>' src='http://saita.com/image.png' onclick='changeimg("minusa<?php echo $i;?>")' >
				</div>

Код:
foreach ($d as $tvname){
 echo "<div class='tvsubmatch".$i."' style='display:none;'>
				$tvname
				</div>
";
 }

П.С. Дива с ид match ако ми стане с ид match1 , във цикъла отдоло всичките ми дивове стават със class=tvsubmatch1..

Проблема е че нямам идея къде греша, за да го преправя да стане с класове.. поразрових в нета, но видях примери на разни неща, които така и не станаха. Моля за съвет или линк от където мога да видя какво точно бъркам и какво трябва да направя.
 

Back
Горе