-1
var pre = '<a href=someDirectoryPath';
var mid = '.aspx">';
var post = '</a>';
var trailHTML = '';
for(i=0;i<trail.length;i++) {
    trailHTML = trailHTML + pre + getURL(trail[i]) + mid + trail[i] + post;
    if(i!=(trail.length-1)) {
    trailHTML += ' > ';
    }
}
document.write(trailHTML);

トレイルは、次のような有効なページの配列リストです。

['some name', 'another name','yet another name','name']

getURL はその名前を取り、'-'単語の間にページ名である a を追加するだけです。これはテスト済みで動作します。(たとえば、 をgetURL('some name')返します'some-name')

問題は、IE9 で実行した場合 (他のブラウザーではテストされていません)、trailHTML をページに書き込むと、配列の最後の要素しか取得できないことです。どうしてこれなの?

説明が必要な場合はお知らせください...

4

2 に答える 2

1
function getURL(txt){
    return txt.replace(/ /g,"-");
}
var trail = ['some name', 'another name','yet another name','name'];

///////////////////////////////////////////////////

var pre = '<a href="someDirectoryPath/'; // changed
var mid = '.aspx">';
var post = '</a>';
var trailHTML = '';
for(i=0;i<trail.length;i++) {
    trailHTML += pre + getURL(trail[i]) + mid + trail[i] + post;
    if(i<trail.length-1)trailHTML+=" &gt; " // changed
}
document.write(trailHTML);
于 2012-06-12T12:55:20.730 に答える
0

forループに構文エラーがあります。ifの開いている「{」に一致する「}」がありません。

IE9で小さなサンプルを実行し、レポートした最後のアイテムだけでなく、配列内のすべてのアイテムを取得しました。これが私が実行したものです:

<script type="text/javascript">
function getURL(s){
    return s.replace(" ", "-");
}

var trail = ['some name', 'another name','yet another name','name'];
var pre = '<a href=someDirectoryPath';
var mid = '.aspx">';
var post = '</a>';
var trailHTML = '';
for(i=0;i<trail.length;i++) {
    trailHTML = trailHTML + pre + getURL(trail[i]) + mid + trail[i] + post;
    if(i!=(trail.length-1)) {
        trailHTML += " > ";
    }
}
trailHTML = trailHTML + getURL(trail[0]);
document.write(trailHTML);
</script>

出力は次のようになりました。

ある名前>別の名前>さらに別の名前>namesome-name

ほとんどの場合、問題は構文エラー、または配列が関数に組み込まれる/渡される方法に起因します。

于 2012-06-12T12:34:59.680 に答える