怎么让html表格td里显示js返回的值

问题描述

怎么让html表格td里显示js返回的值,这是在volist循环里面的,我就是想要<td id="td1"></td>显示js返回的值。

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

<tbody>
{volist key="key" name="$innoexcel" id="val"}
<tr>
    <td>{$key}</td>
    <td>{$val.project_name}</td>
    <td>{$val.cont_name}</td>
    <td>{$val.tel}</td>
    <td>{$val.email}</td>
    <td>{$val.emp_id}</td>
    <td>{:date('Y-m-d',$val.pact_time)} ~ {:date('Y-m-d',$val.pact_end_time)}</td>
    <td>{:date('Y-m-d H:i:s',$val.create_time)}</td>
    <td>{$val.main_name}</td>
    <td>{$val.lead_unit}</td>
    <td>{$val.lead_team}</td> 
    <td>{$val.help_unit}</td>
    <td>{$val.help_team}</td>
    <td>{$val.other_help}</td>
    <td>{$val.project_type}</td>
    <td>{$val.pro_classify}</td>
    <td>{$val.detpro_classify}</td>
    <td>{$val.research_dire}</td>
    <td>{$val.sup_explan}</td> 
    <td>{$val.fill_way}</td>
    <td>{if($val.status==0&&$val.status1==0)}<font color="#4876FF">待评委审核</font>{elseif($val.status==0&&$val.status1==1)}<font color="#CD00CD">评委已审,待管理员审核</font>{elseif($val.status==1)}<font color="#32CD32">审核通过</font>{elseif($val.status==2)}<font color="#EE3B3B">审核未通过</font>{/if}</td>
    <td id="td1"></td>
    <script>
    function setValue(){
        $val.jud_opinions=$val.jud_opinions.split(',')
        if($val.jud_opinions[0]==null){
            var jud_opinions="评委暂未审核......";
            document.getElementById("td1").innerHTML =jud_opinions;
        }
        else{
            $val.audit=$val.audit.split(',')
            $val.jud_opinions=$val.jud_opinions.split(',')
            len1=$val.audit.length
            $val.jud_opinions1=''
            for(i=0;i<len1;i++)
            {            
                $val.jud_opinions[i]=$val.audit[i]+':'+$val.jud_opinions[i];
                $val.jud_opinions1+=$val.jud_opinions[i]+'\n'                                        
            }
            var jud_opinions=$val.jud_opinions1;
            document.getElementById("td1").innerHTML =jud_opinions;
        }
    }
    </script>
</tr>
{/volist}
</tbody>

你期待的结果是什么?实际看到的错误信息又是什么?

我的一直没有输出,是空白。

阅读 4.2k
3 个回答

1.我理解的你这是循环一个数组里的值,但是document.getElementById("td1").innerHTML =jud_opinions;这里使用id去获得表格单元是有问题的,因为循环完以后会有多个idtd1的单元格,而规范要求html中的id必须是唯一的。
2.你只是进行了函数定义而未进行函数调用。
3.你可以改写函数为接受当前的这条数据为参数,最后document.getElementById("td1").innerHTML =jud_opinions;return jud_opinions;吧脚本放到循环列表的上方,然后在单元格里调用这个函数。即<td id="td1">{setValue($val.jud_opinions)}</td>

$(tbody).find('tr').eq(1).find('td').eq(2);

新手上路,请多包涵

找到另外一种实现思路:

<#if cmsMaterial.playTime??>

     <td style="width:10%" align="center" ><script>document.write(secToTime(${cmsMaterial.playTime!}))</script><td>
    </#if>
    <td style="width:10%" align="center"><td>
    
    
    这样就可以在js函数里面操作td的原始内容并返回。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题