3
<html>
<head>
<script>
function replacesrc() {
    var array= new Array();
    array[1,2,3,4]=document.getElementById("From").value.split(" ");
    document.getElementById("map").src="https://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr="+array[1]+"+"+array[2]+"+"+array[3]+",+North+Augusta,+SC&amp;daddr=Hilton+Head+Island,+SC&amp;geocode=FYn4_wEd4BQd-ym_ve9aOTP4iDGvGGPbsAEwOw%3BFfyU6wEdINAv-ymtGdOO3Hn8iDE9KKLreqblLA&amp;aq=1&amp;oq=hi&amp;sll=33.623768,-80.925293&amp;sspn=5.551464,10.129395&amp;hl=en&amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;ll=32.88718,-81.37587&amp;spn=1.3416,1.24656&amp;output=embed"
    document.getElementById("test").value=array[1,2,3,4];
}


</script>
</head>
<body>

<iframe id="map" width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=2000+Knobcone+Ave,+North+Augusta,+SC&amp;daddr=Hilton+Head+Island,+SC&amp;geocode=FYn4_wEd4BQd-ym_ve9aOTP4iDGvGGPbsAEwOw%3BFfyU6wEdINAv-ymtGdOO3Hn8iDE9KKLreqblLA&amp;aq=1&amp;oq=hi&amp;sll=33.623768,-80.925293&amp;sspn=5.551464,10.129395&amp;hl=en&amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;ll=32.88718,-81.37587&amp;spn=1.3416,1.24656&amp;output=embed"></iframe>
<br />From: <input id="From" type="text" /> <button onClick="replacesrc()">Directions</button><input id="test" type="text" value="test" />

<br /><small><a href="https://maps.google.com/maps?f=d&amp;source=embed&amp;saddr=2000+Knobcone+Ave,+North+Augusta,+SC&amp;daddr=Hilton+Head+Island,+SC&amp;geocode=FYn4_wEd4BQd-ym_ve9aOTP4iDGvGGPbsAEwOw%3BFfyU6wEdINAv-ymtGdOO3Hn8iDE9KKLreqblLA&amp;aq=1&amp;oq=hi&amp;sll=33.623768,-80.925293&amp;sspn=5.551464,10.129395&amp;hl=en&amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;ll=32.88718,-81.37587&amp;spn=1.3416,1.24656" style="color:#0000FF;text-align:left">View Larger Map</a></small>

</body>
</html>

それが私のコードです。それは未定義としてそれを渡し続けます。誰かがここで私を助けてくれますか?私はこれを修正するためにさまざまな方法を試しました。しかし、私はまだできません。私の時点から、私はそれを正しく行いました。それが何を送信しているかを確認するためにテスト関数を配置すると、まったく同じものが返されますが、それをsrcに配置すると、未定義として配置されます。

4

1 に答える 1

1

最初の2行の代わりにこれを試してください。次に、0から始まる要素にアクセスします。これarray[0]は、最初の項目、array[1]2番目の項目などです。

var array = document.getElementById("From").value.split(" ");

そして最後の行にはこれを使用してください:

document.getElementById("test").value = array.join();

なんで?

array[1,2,3,4]あなたが期待することをしません。かなり直感的ではありません。ここでのコンマでは、複数の配列インデックスにアクセスできません。

1,2,3,4は、奇数のコンマ,演算子を3回使用した式です。式の場合、a,baが評価されてから破棄されます。Nextbが評価され、それがコンマ演算子の値になります。

1,2,3,4 == ((1,2),3),4
        == (2,3),4
        == 3,4
        == 4

したがって、書き込みarray[1,2,3,4]は実際にはと同じですarray[4]

于 2012-10-18T01:29:15.957 に答える