0

私は JavaScript コーダーにはあまり詳しくないので、私が抱えている問題を解決してくれる人からのアドバイスを求めています。主な問題は、画像を交換して、ラジオボタン。

<script language="JavaScript">
function changeImage(newImage)
{
    if document[imageName].src = eval(newImage + ".src");
}
var img00700000232 = new Image();
img00700000232.src = "/2/00700000232.jpg";
var img00700000263 = new Image();
img00700000263.src = "/2/00700000263.jpg";
var img00700000270 = new Image();
img00700000270.src = "/2/00700000270.jpg";
var img00700000133 = new Image();
img00700000133.src = "images/TempImage.png";
var img00700000164 = new Image();
img00700000164.src = "images/TempImage.png";
var img00700000140 = new Image();
img00700000140.src = "images/TempImage.png";
var img00700000157 = new Image();
img00700000157.src = "images/TempImage.png";
</script>



</head><body>
<form name="test">
<input name="field" type="radio" value="00700000232" onchange="changeImage('img00700000232');">Prod1</input>
<br/>
<input name="field" type="radio" value="00700000263" onchange="changeImage('img00700000263');">Prod2</input>
<br/>
<input name="field" type="radio" value="00700000270" onchange="changeImage('img00700000270');">Prod3</input>
<br/>
<input name="field" type="radio" value="00700000133" onchange="changeImage('img00700000133');">Prod4</input>
<br/>
<input name="field" type="radio" value="00700000164" onchange="changeImage('img00700000164');">Prod5</input>
<br/>
<input name="field" type="radio" value="00700000140" onchange="changeImage('img00700000140');">Prod6</input>
<br/>
<input name="field" type="radio" value="00700000157" onchange="changeImage('img00700000157');">Prod7</input>
<br/>
</form>
<img name="image_name" src="images/TempImage.png" />

これは ASP クラシックから生成されたコードであるため、コードはサーバー側で生成されるため、これが問題なのか、それとも私のコードに問題があるのか​​ わかりません。

ありがとうブラッド

4

1 に答える 1

0

構文エラーがあります:

if document[imageName].src = eval(newImage + ".src");

次のようにする必要があります。

if( document["image_name"])
  document["image_name"].src = eval(newImage + ".src");

編集:

「image_name」DOM 要素を取得するより良い方法は、「name」属性を「id」に変更し、代わりに document.getElementById を使用することです。

したがって、次のようになります。

<img id="image_name" src="images/TempImage.png" />

function changeImage(newImage) 
{
  var imgEle = document.getElementById("image_name");
  if (imgEle){
      imgEle.src = eval(newImage + ".src");
  }
}

また、ここで必ずしも eval を使用する必要はありません。必要に応じて、アンカー タグで画像変数を参照できます。

だからこれを変える

<input name="field" type="radio" value="00700000164" onchange="changeImage('img00700000164');">Prod5</input>

これに

Prod5

次に、関数を変更する必要があります

function changeImage(newImage) 
{
  var imgEle = document.getElementById("image_name");
  if (imgEle && newImage){
      imgEle.src = newImage.src;
  }
}
于 2012-11-13T15:13:21.573 に答える