需求:外面是asp:repeater绑定的数据,内层是根据asp:repeater的数据来判断要显示的内容。内容是从后台cs里传来的一个字符串,然后对这个字符串进行分割,并对分割后的数据调用js的一个函数进行处理。<script type="text/javascript">
fooddata = document.getElementById("inFoodData").value;//得到后台cs传来的数据
var fooddatalist = fooddata.split("&&&&");//第一次分割,得到的数据格式为food1,food2...
for (food in fooddatalist)
{
var tmpfoodlist = fooddatalist[food].split("&&");//第二次分割,得到的数据格式为:foodcategoryID,foodID,foodName,foodPrice
if (tmpfoodlist[0] == <%#Eval("FoodCategoryID") %>)
{
document.write("<li>");
document.write("<span class='name'>" + tmpfoodlist[2] + "</span>");
document.write("<span class='right'>");
document.write("<span class='price'>" + "¥"+ tmpfoodlist[3] + "</span>");
document.write("&emsp;&emsp;");

//调用在<head>标签中定义的js order函数,对数据进行处理
//问题出在此处,点击链接后,得到的String(tmpfoodlist[2]),Number(tmpfoodlist[3])两个参数的值分别为undefined和Nan,还望高手指教,不胜感激 document.write("<a href='javascript:order(String(tmpfoodlist[2]),Number(tmpfoodlist[3]))'>订餐</a>");
document.write("</span>");
}
}
</script>问题:document.write("<a href='javascript:order(String(tmpfoodlist[2]),Number(tmpfoodlist[3]))'>订餐</a>");此语句中得到的String(tmpfoodlist[2]),Number(tmpfoodlist[3])两个参数的值分别为undefined和Nan,还望高手指教,不胜感激
在线等待。

解决方案 »

  1.   

    alert(tmpfoodlist.length)看看是多少
      

  2.   


    因为你的a标签是在js里创建出来的:
     document.write("<a href='javascript:order(String(tmpfoodlist[2]),Number(tmpfoodlist[3]))'>订餐</a>");---------------->
    document.write("<a href=\"javascript:order('"+String(tmpfoodlist[2])+"',"+Number(tmpfoodlist[3])"+)\">订餐</a>");
    Java 技术交流群:58156559
      

  3.   


    是这样的,document.write("<span class='name'>" + tmpfoodlist[2] + "</span>");
    document.write("<span class='price'>" + "¥"+ tmpfoodlist[3] + "</span>");这两句输出的结果,也就是tmpfoodlist[2]和tmpfoodlist[3]的值都是正确的,而放在语句document.write("<a href='javascript:order(String(tmpfoodlist[2]),Number(tmpfoodlist[3]))'>订餐</a>");输出的结果就不是和上面的正常数据不一样了分别是undefined和Nan。这是问题的关键呢,我觉着可能是语法的错误,我这是第一次写js的代码按你的说法,能确定有多少条数据
      

  4.   

    你的tmpfoodlist[2]和tmpfoodlist[3]分别是什么值啊
    变成undefined和Nan说明tmpfoodlist[2]本身就是undefined,tmpfoodlist[3]应该是undefined或者不包含数字
      

  5.   


    你的String(),Number()不是你自己定义的方法?如果不是document.write("<a href='javascript:order(String(tmpfoodlist[2]),Number(tmpfoodlist[3]))'>订餐</a>");---------------->document.write("<a href=\"javascript:order('"+tmpfoodlist[2]+"',"+tmpfoodlist[3]"+)\">订餐</a>");
    这个应该不会有js错
      

  6.   

    我发先我的错了:汗!!document.write("<a href=\"javascript:order('"+tmpfoodlist[2]+"',"+tmpfoodlist[3]"+)\">订餐</a>");----------------->document.write("<a href=\"javascript:order('"+tmpfoodlist[2]+"',"+tmpfoodlist[3]+")\">订餐</a>");
    这样应该就对了!或者在把你的String(),Number()加上