js里用location.href跳转

functiontest(){vartable=document.getElementById("rule");varstuIds="";varrows=table.ro... function test(){
var table = document.getElementById("rule");
var stuIds = "";
var rows = table.rows.length;
for(var i=1 ;i <= rows ;i++){
stuIds = stuIds + table.rows[i].cells[0].innerHTML;
alert(stuIds);
}
location.href="ReteResult.jsp?stuIds="+stuIds;
}
<input value="点我" type="button" onclick="test()">
不加这段 循环

for(var i=1 ;i <= rows ;i++){
stuIds = stuIds + table.rows[i].cells[0].innerHTML;
alert(stuIds);
}
可以跳转;
加了循环,alert可以循环显示,但是不跳转。试过window.location.href也不行。
展开
 我来答
yugi111
2015-08-11 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部

那肯定是你加了之后你的url非法格式了,当然不跳转了,你直接拼接innerHTML容易出错的,有的东西是不能直接拼接的,例如转义字符或者空格什么的,中文参数过长什么的还要使用encodeComponent或者encode方法呢。

function test() {
    var table = document.getElementById("rule");
    var stuIds = "";
    // 命名要规范,不然rows和长度实在难以凑到一起去想象。
    var len = table.rows.length;
    // 这里i从0开始,索引都是从0开始,不是1
    // 这里不要等于len,不然最后一个undefined
    for (var i = 0; i < len; i++) {
        // 这里累加就好,简洁为上
        stuIds += table.rows[i].cells[0].innerHTML;
    }
    // 在这里F12控制台输出信息,看看到底是什么乱七八糟的东西
    // 是不是和你的后台所需要的参数一致
    // 一般来说都有分隔符分割每个学生的id,你直接累加,试问如何区分??
    //到后台了,肯定是被分割的id,然后后台split切割什么的,得到数组
    // 于是被操作进数据库。
    console.debug(stuIds);
    // location.href和window.location.href是一个意思,
    // locatin就是window的对象属性,默认window是全局性质,
    // 任意全局变量都是他的对象属性,不写window就是默认他
    location.href = "ReteResult.jsp?stuIds=" + stuIds;
}


<input value="点我" type="button" onclick="test()">

 最后,最重要的,采纳即可。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式