<li>
特定をクリックすると、同じページに画像が表示されるように取得しようとしています。
以下は、使用する画像を決定するコードです。うまく機能しているようですが、問題の原因となる場合に備えて含めています。
<?php
$j = 0;
if (file_exists("u/".$_SERVER["REMOTE_ADDR"])) {
$lines = array_reverse(array_unique(file("u/".$_SERVER["REMOTE_ADDR"])));
$c = count($lines);
$c = ($c > 20)?20:$c;
for ($i = 0; $i < $c; $i++) {
$lines[$i] = trim($lines[$i]);
if (file_exists($lines[$i])) {
echo "<li id=\"item$j\" title=\"".$lines[$i]."\" onclick=\"\"><a id=\"link$j\" href=\"#\">".$lines[$i]."</a></li>";
$j++;
}
}
}
?>
次の JavaScript は、各要素に onclick を適用します。
<script type="text/javascript">
for (i = 0; i < <?php echo $j; ?>; i++) {
iLINK = $("item"+i).get("title");
iHTML = "<img src=\""+iLINK+"\" />";
$("item"+i).setAttribute("onclick","$('photogal').innerHTML = " +iHTML);
}
</script>
ページをロードするとき、<li>
要素は美的に優れています。要素を調べると、次のように表示されます(これは正しいようです):
JavaScript の最後の行を次のように変更する場合:
$("item"+i).setAttribute("onclick","$('photogal').innerHTML = iHTML");
期待どおりにonclick
動作しますが、すべてのリンクによって最終的な画像が表示されます (ループの後、iHTML は最終的に iHTML の最後のインスタンスが何であったとしても)。
このコードの問題は何ですか?