2012-03-01 12 views
6

Jestem całkiem nowym użytkownikiem Javascript i próbowałem czegoś. Używam funkcji do ładowania obrazu wewnątrz tabeli przy użyciu innerHTML. Ale obraz nie pojawia się, chyba że wezwę alert ("cokolwiek") na dole funkcji, a następnie pojawi się, gdy alarm jest widoczny. Kod używam jest coś (funkcja jest wywoływana z zewnętrznego pliku js)Dlaczego mój obraz nie wyświetla się, gdy używam JavaScript innerHTML do wywoływania tego obrazu?

<script> 
    function show(){ 
     document.getElementById('imageHolder1').innerHTML="<a href="#"><img='photos/picture.jpg' border=0/></a>"; 
    } 
</script> 

<body> <input name="b1" type="button" value="pics" onclick="show()"/> 
<table><td id='imageHolder1'>picture</td></table> 
</body> `` 

ja nie rozumiem, dlaczego to nie działa, wszystkie przykłady Mam spojrzał na są podobne, ja zobacz żadnych dużych różnic. Nawet jeśli spróbuję bez tagu, to nie działa. Cóż, każda pomoc jest mile widziana! Z góry dziękuję, a jeśli masz jakieś sugestie, jak to zrobić (bez jquery, ponieważ wciąż uczę się javascript), również bym to docenił. Dzięki jeszcze raz!

+0

Sprawdź #, musisz uciec "w twoim wewnętrznym HTMLu" innerHTML to bestia, z którą możesz pracować, ponieważ musisz upewnić się, że wszystko, co wstawiasz, jest prawdziwe i dobre HTML, może chcieć zajrzeć do bardziej szczegółowych, ale bardziej godnych zaufania DOM manipulujących javascript, takich jak 'appendChild' itp. – user17753

+0

Proponuję także pracować z czymś takim jak firebug dla FF lub jakiegoś innego debuggera JavaScript, ponieważ te błędy są łatwiejsze do wykrycia. – user17753

+0

dziękuję, spróbuję appendChild, i ostatecznie spojrzę na debuggery JavaScript, ponieważ nic nie działa z tym przykładem jak to jest. – biobio

Odpowiedz

4

masz błąd w ciąg:

document.getElementById('imageHolder1').innerHTML="<a href="#"><img='photos/picture.jpg' border=0/></a>"; 

powinien przeczytać

document.getElementById('imageHolder1').innerHTML="<a href='#'><img src='photos/picture.jpg' border=0/></a>"; 

(zawiadomienie "do" zastąpienia)

+0

To musi być złe cut-n-paste, w przeciwnym razie wygenerowałoby Synt axError –

+0

prawda, usunąłem src po wklejeniu – biobio

1

nie dodajesz src obrazu i to. powinno być href='#' powinno być tak

function show(){ 
    document.getElementById('imageHolder1').innerHTML="<a href='#'><img src='photos/picture.jpg' border='0'/></a>"; 
} 
1

Spróbuj dające obraz o id „obrazu”, a następnie przy użyciu następujących:

function show(){ 
    document.getElementById('image').src = 'photos/picture.jpg' 
} 
+0

dzięki! to działa. – biobio

+0

Cieszę się, że pomogłem. – Jack

2

istnieje wiele błędów i leniwych skrótów w kodzie. Zrobiłem skrzypce i musiałem poprawić kilka miejsc, które wyglądają jak bardzo pospieszna praca ... tutaj jest twoje skrzypce, ale baw się tym z pewnym oddaniem: http://jsfiddle.net/uXpeK/

+0

Wielkie dzięki za poświęcenie czasu, aby to zrobić! Sądzę, że ma to jakiś związek z wprowadzaniem ważnych atrybutów. – biobio

Powiązane problemy