jsp加载问题,在线等!!!!!!!

Timor_D 2019-01-02 10:20:54
Uncaught TypeError: Cannot read property 'style' of null

知道是页面没加载完就执行了某段JS代码,把那个方法拿出来后,加了onload方法 还是不行,放到html最后还是不行,有"style" 样式的代码是C标签foreach 循环出来的。试了很多方法都还是报错!!!!
有没有大佬指点一下,没多少分了,不要介意!!!
...全文
456 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
千里共良辰 2019-01-04
  • 打赏
  • 举报
回复
其他没仔细看,fdid是变量吗?若不是的话得用引号括起来
千里共良辰 2019-01-04
  • 打赏
  • 举报
回复
fdid是变量吗?不是变量要引号括起来
nayi_224 2019-01-03
  • 打赏
  • 举报
回复
来一波补刀 jquery是用来取代dom的,不如直接改成jQuery("#" + jQuery.trim(fdid)).show(); 如果这句代码正确无误 $("#TABLE_DocList_fdProjectmngInvestor_Form tr").each(function(){ this.style.display = ''; }); 那么下面报错那句就是无用代码,他唯一的作用只是报错,然后让之后的代码失效,但是后面又没有代码。 不要用字符串解析的方法处理数组。推测var list='[1680c020909cb2ceeb428244e18a91f4, 1680c020909cb2ceeb428244e18a91f4, 1680c0be55fd6a45931acac416698b7d]';这句应该来自类似var list = '${list}';这样的代码。正确的写法应该是var list = ${list}; 由于内容中有字符串,后台应该返回json格式,不然会报错。这样的话可以这么取值 var fdid= list.get(list.length - 1);
nayi_224 2019-01-03
  • 打赏
  • 举报
回复
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="../../js/jquery/jquery-3.2.1.min.js" type="text/javascript" charset="utf-8"></script>
<script language="javascript" >
    window.onload=iSeqValue;
    function iSeqValue() {
        $("#TABLE_DocList_fdProjectmngInvestor_Form  tr").each(function(){
            //this.style.display = '';
        });
        var qxValue ='0';
        var eqValue ='1';
        
        var  list='[1680c020909cb2ceeb428244e18a91f4, 1680c020909cb2ceeb428244e18a91f4, 1680c0be55fd6a45931acac416698b7d]';
        var arr = list.split(',');
        // alert(arr);
        var fdid="";
        for (var i=0;i<arr.length;i++){
            fdid=arr[i].replace("[","");
            fdid=fdid.replace("]","");
        }
        
		//jQuery("#" + jQuery.trim(fdid)).show();
		
		//alert(qxValue+"=="+eqValue);
        if (qxValue=='1'){
            $("#TABLE_DocList_fdProjectmngInvestor_Form  tr:gt(0)").each(function(){
                // alert(123)
                this.style.display = '';
            });
        }else {
            if (eqValue=='1') {
                if (fdid != "") {
                    alert(fdid);
                    //document.getElementById(fdid).style.display = '';//显示
					document.getElementById(jQuery.trim(fdid)).style.display = '';//显示
                }
            }
        }
    }
</script>
	</head>
	<body>
<table id="TABLE_DocList_fdProjectmngInvestor_Form">
 <tr KMSS_IsContentRow="1" id="1680c0be55fd6a45931acac416698b7d"
                                       style="display: none">
                                        
                                        <td align="center">
                                                2
                                        </td>
                                        <td align="center">
                                            <input type="hidden" name="fdProjectmngInvestor_Form[1].fdId"
                                                   value="1680c0be55fd6a45931acac416698b7d"/>
                                            <div id="_xform_fdProjectmngInvestor_Form[1].fdInvestorId"
                                                 _xform_type="text">
										</td>
</tr>
</table>

	</body>
</html>
Timor_D 2019-01-03
  • 打赏
  • 举报
回复
引用 8 楼 nayi_224 的回复:
虽然对你的语句逻辑还有些疑问,不过直接的原因就是,你最终取到的fdid的前面有一个空格,trim一下应该就好了。

试了你的方法 还是没有解决
nayi_224 2019-01-02
  • 打赏
  • 举报
回复
虽然对你的语句逻辑还有些疑问,不过直接的原因就是,你最终取到的fdid的前面有一个空格,trim一下应该就好了。
Timor_D 2019-01-02
  • 打赏
  • 举报
回复
<script language="javascript" >
window.onload=iSeqValue;
function iSeqValue() {
$("#TABLE_DocList_fdProjectmngInvestor_Form tr").each(function(){
this.style.display = '';
});
var qxValue ='0';
var eqValue ='1';

var list='[1680c020909cb2ceeb428244e18a91f4, 1680c020909cb2ceeb428244e18a91f4, 1680c0be55fd6a45931acac416698b7d]';
var arr = list.split(',');
// alert(arr);
var fdid="";
for (var i=0;i<arr.length;i++){
fdid=arr[i].replace("[","");
fdid=fdid.replace("]","");
}
alert(qxValue+"=="+eqValue);
if (qxValue=='1'){
$("#TABLE_DocList_fdProjectmngInvestor_Form tr:gt(0)").each(function(){
// alert(123)
this.style.display = '';
});
}else {
if (eqValue=='1') {
if (fdid != "") {
alert(fdid);
document.getElementById(fdid).style.display = '';//显示
}
}
}
}
</script>


<tr KMSS_IsContentRow="1" id="1680c0be55fd6a45931acac416698b7d"
style="display: none">

<td align="center">
2
</td>
<td align="center">
<input type="hidden" name="fdProjectmngInvestor_Form[1].fdId"
value="1680c0be55fd6a45931acac416698b7d"/>
<div id="_xform_fdProjectmngInvestor_Form[1].fdInvestorId"
_xform_type="text">



nayi_224 2019-01-02
  • 打赏
  • 举报
回复
引用 5 楼 Timor_D 的回复:
[quote=引用 3 楼 nayi_224 的回复:] 明显是js报错,跟jsp没什么关系。就是document.getElementById(fdid)没有取到对象。 分析原因需要你把jsp代码发出来,最好把最终生成的网页源代码也发出来。
知道是js报错,大概代码在下面[/quote] 用谷歌浏览器,空白处右键--》查看网页源代码。把这两块的代码发出来。
Timor_D 2019-01-02
  • 打赏
  • 举报
回复
引用 3 楼 nayi_224 的回复:
明显是js报错,跟jsp没什么关系。就是document.getElementById(fdid)没有取到对象。
分析原因需要你把jsp代码发出来,最好把最终生成的网页源代码也发出来。

知道是js报错,大概代码在下面
Timor_D 2019-01-02
  • 打赏
  • 举报
回复
window.onload = iSeqValue;
function iSeqValue() {
document.getElementById(fdid).style.display = '';//显示
}
JSP:
<c:forEach items="${projectmngTzrList}" var="map" varStatus="status">
<tr KMSS_IsContentRow="1" id="${fdProjectmngInvestor_FormItem.fdId}"
style="display: none">
.......

大概代码 就是这样
nayi_224 2019-01-02
  • 打赏
  • 举报
回复
明显是js报错,跟jsp没什么关系。就是document.getElementById(fdid)没有取到对象。 分析原因需要你把jsp代码发出来,最好把最终生成的网页源代码也发出来。
Timor_D 2019-01-02
  • 打赏
  • 举报
回复
太早了 没人吗~~
Timor_D 2019-01-02
  • 打赏
  • 举报
回复
document.getElementById(fdid).style.display = '';
马QQQ 2019-01-02
  • 打赏
  • 举报
回复
没有仔细看你代码。但是你说代码是动态生成的,你可以考虑用事件委托的方式来绑定

81,094

社区成员

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

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