javascript 里使用innerHtML 向DIV里去添加内容,可是出现如下问题

mawenning 2008-10-27 09:44:17
请教了:
我在javascript里这样写了
var forward="window.location.href='JavaScript:joincart()'";
这个字符串是用来调用 本js文件内的 joincart()方法用的
ss+='<h4 align="center"><a href="disbooks.do">继续购物</a><br /><br /><input type="button" value="结账" onclick="'+forward+'"/></h4>';
上面这个是向div内添加内容的字符串的一部分
问题就出现在这个onclick="'+forward+'" 上面 ,我使用firbug去调试,firbug给我报的错误提示是
joincart is not defined
javascript:joincart()()()

突然就多出来了两个()

像这样调用函数,我在jsp里面写就没错:
<input type="button" value="放入购物车" onclick="window.location.href='JavaScript:join()'" id="join"/>
请大家帮忙看一下
另外,请告诉我怎么结分的,我在线等
...全文
2402 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mawenning 2008-10-28
  • 打赏
  • 举报
回复
我自己变换思路解决了此问题
我没有再使用字符串拼接的方式去向div里添加内容
而是把有问题的内容直接写在页面的一个div里面,load的时候隐藏,而在javascript里面再显示
sunyujia 2008-10-27
  • 打赏
  • 举报
回复
估计是浏览器被搞晕的问题,因为你的JavaScript:joincart()相当于不是字符串,具体原因见5楼,这样它被当成了代码块,ff试图解释它可能这个解析就出错了
结贴很简单,点击
我要提问,帖子加分,结帖去.管理菜单
中的结贴去按钮,右侧可以为回帖人分派分数,分完分后,点击确认 即可.

好的信誉,赢来更多的人气.
mawenning 2008-10-27
  • 打赏
  • 举报
回复
我很奇怪的是,为什么firbug会提示出那样的错误~~
joincart is not defined
javascript:joincart()()()
sunyujia 2008-10-27
  • 打赏
  • 举报
回复
把你的代码从头到尾检查下,做个统一,浏览器都被你搞晕了.
' <h4 align="center"> <a href="disbooks.do">继续购物 </a> <br /> <br /> <input type="button" value="结账" onclick="window.location.href='JavaScript:joincart()'"/> </h4>';

你看看上面的匹配,浏览器最先找到了' <h4 align="center"> <a href="disbooks.do">继续购物 </a> <br /> <br /> <input type="button" value="结账" onclick="window.location.href='
然后又找到了'"/> </h4>'
同时这个地方你又是dhtml,浏览器会做,隐身的html对象装换,兼容了一些错误
建议先把模版做好,让后在填值,不要大量的innerHTML=具体的html代码/
sunyujia 2008-10-27
  • 打赏
  • 举报
回复
怎么会不行呢
试试
var forward="joincart();";

为什么会发生这个事情
' <h4 align="center"> <a href="disbooks.do">继续购物 </a> <br /> <br /> <input type="button" value="结账" onclick="'+forward+'"/> </h4>';
这个字符串你使用了'做为外层边界
而上面你使用'作为普通字符串.明白了吧
var forward="window.location.href='JavaScript:joincart()'";

你一会用'做外边界,一会用"做外边界.......不要这样.选"做外边界比较好些其实.
mawenning 2008-10-27
  • 打赏
  • 举报
回复
2,3楼都不行
这样,我把代码贴一下吧


var xmlhttp;
//查看购物车的ajax
function sele()
{
xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange=callback;

xmlhttp.open("post","join.do?isbn=sele",true);

xmlhttp.send(null);

}

//向购物车内添加数据的AJAX
function join()
{

var isbn=document.getElementById("isbn");
var is=isbn.innerHTML;


xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange=callback;

xmlhttp.open("post","join.do?isbn="+is,true);

xmlhttp.send(null);
}

function callback()
{
var word=document.getElementById("word");
word.innerHTML="购物车内商品";
//得到两个div对象,并且修改显示方式
var onebook=document.getElementById("onebook");
onebook.style.display="none";
var joinbook=document.getElementById("joinbook");
joinbook.style.dispaly="block";


var info=xmlhttp.responseText;

//定义一个变量用于定义总价
var sumprice=0;



if(info=="购物车内没有任何商品!")
{
joinbook.innerHTML="购物车内没有任何商品!";
}else
{
var forward="window.location.href='JavaScript:joincart()'";
//目前已经得到值
//如果info包含&符号,那么说明,有2个或2个以上的书籍信息在session中
//如果info中不包含&符号,那么说明,只有一个书籍信息在session中
if(info.indexOf("&")!=-1)
{
var books=info.split("&");
//定义一个变量,用于存放将要innerHTML里的字符串
var ss='<table cellSpacing=0 cellPadding=0 width=590 border=1><tr align="center"><td>书籍名称</td><td>数量</td><td>价格</td><td>小计</td></tr>';
for(var i=0;i<books.length-1;i=i+1)
{
var bookone=books[i].split("|");
ss+='<tr align="center"><td>'+bookone[0]+'</td><td>'+bookone[2]+'</td><td>'+bookone[1]+'</td><td>'+parseInt(bookone[2])*parseFloat(bookone[1])+'</td></tr>';
sumprice+=parseInt(bookone[2])*parseFloat(bookone[1]);
}
ss+='<tr><td colspan="4" align="right">'+sumprice+'</td></tr></table><br/><br/>';

ss+='<h4 align="center"><a href="disbooks.do">继续购物</a><br /><br /><input type="button" value="结账" onclick="'+forward+'"/></h4>';
joinbook.innerHTML=ss;

}else
{

var sigle='<table cellSpacing=0 cellPadding=0 width=590 border=1><tr align="center"><td>书籍名称</td><td>数量</td><td>价格</td><td>小计</td></tr>';
var book1=info.split("|");
sigle+='<tr align="center"><td>'+book1[0]+'</td><td>'+book1[2]+'</td><td>'+book1[1]+'</td><td>'+parseInt(book1[2])*parseFloat(book1[1])+'</td></tr>';
sumprice+=parseInt(book1[2])*parseFloat(book1[1]);
sigle+='<tr><td colspan="4" align="right"><b>总计</b>:'+sumprice+'</td></tr></table><br/><br/>';
sigle+='<h4 align="center"><a href="disbooks.do">继续购物</a><br /><br /><input type="button" value="结账" onclick="'+forward+'"/></h4>';
joinbook.innerHTML=sigle;
}

}

function joincart()
{
alert("ddddd");
var joinbook=document.getElementById("joinbook");
joinbook.style.display="none";

var card=document.getElementById("card");
card.style.display="block";

}



}
accp206 2008-10-27
  • 打赏
  • 举报
回复
好复杂啊……你那里直接这样写:
<input type="button" value="结账" onclick="joincart()"/>
难道不行吗?
lihan6415151528 2008-10-27
  • 打赏
  • 举报
回复
楼主可以这样

onclick="javascript:goto()"



然后写一个js

<script>
window.location.href='JavaScript:join()'
</script>



看看行否!
huoyin 2008-10-27
  • 打赏
  • 举报
回复
var forward="window.location.href='JavaScript:joincart()'";

改为:

var forward='window.location.href=' + joincart();

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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