js传参小问题

byeceg 2011-08-12 04:31:25
//js代码 删除操作
function delete1(id){
alert(id);
....
}

页面调用
sb.append(Num);//是行数,从0开始
sb.append("-");//分隔符
sb.append(remark.getId());//表的的id

<a href="javascript:delete1(<%=sb.toString()%>)">删除</a>
传递的参数本来是第一行'0-146'第二行'1-147',结果js里接受的值是第一行'146',第二行也是'146',它自己做了加减运算.

怎么让它成为字符串,而不去做运算。
...全文
126 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
最后一个菜鸟 2011-08-15
  • 打赏
  • 举报
回复
怎么看append怎么会自动加减呢
wsbylls 2011-08-15
  • 打赏
  • 举报
回复
sb.append(Num);//是行数,从0开始
初始是这样的,sb.append(Num);
如果它计算的话,说明sb是number的
所以你把它转换为String 就行了
我不知道sb初始是怎么声明的以及初始化的,
在它初始化时,让它var sb="";
以后append(Num)它就不会变为number类型,也就不存在计算数值的问题了
byeceg 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 truelove12 的回复:]

try

<a href="javascript:delete1('<%=sb.toString()%>')">删除</a>
[/Quote]
不行,看样子,得按1楼说的做了。
  • 打赏
  • 举报
回复
try

<a href="javascript:delete1('<%=sb.toString()%>')">删除</a>
  • 打赏
  • 举报
回复


<body>
<script runat="server" type="text/C#">

System.Text.StringBuilder sb = new StringBuilder("0-176");


</script>
<form id="form1" runat="server">
<div>
<script type="text/javascript">

function test(id) {
alert(id);
};


</script>

<a href="<%=string.Format("javascript:test('{0}')",sb.ToString()) %>">test</a>

</div>
</form>
</body>


出来打酱油 2011-08-12
  • 打赏
  • 举报
回复
没看懂楼主的业务需求,但是根据楼主
传递的参数本来是第一行'0-146'第二行'1-147',结果js里接受的值是第一行'146',第二行也是'146',它自己做了加减运算.

这句话,就应该是变量作用域的问题。
cb1156 2011-08-12
  • 打赏
  • 举报
回复
变量=变量+""
就可以了。。。
这类ID应该不能用数字开头。不是么。。。。
abcd_ufo 2011-08-12
  • 打赏
  • 举报
回复
1. 将-改为全笔的 -号码
2. 传递一个特殊的字符 在传过去之后通过 replace 方法 将 特殊字符替换为 -

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧