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);
trail是有效页面的arraylist,如下所示:
['some name', 'another name','yet another name','name']
getURL只接受该名称,并在单词之间添加'-'
,这是页面名称。这已经过测试和运作。 (例如,getURL('some name')
返回'some-name'
)
问题是,当在IE9中运行(在其他浏览器中未经测试)时,当我将trailHTML写入页面时,我只获得数组中的最后一个元素。为什么是这样?
如果您需要任何澄清,请告诉我......
答案 0 :(得分: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+=" > " // changed
}
document.write(trailHTML);
答案 1 :(得分: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>
输出看起来像这样:
某个名称&gt;另一个名字&gt;另一个名字&gt; namesome-name
很可能您的问题是由语法错误引起的,或者是数组如何构建/传递到您的函数中。