首页 新闻 会员 周边 捐助

IE8下 报错无法获取属性值 但可以console出来值

0
悬赏园豆:100 [待解决问题]

JQ1.83版  attr全部改成 prop还是报错无法获取到name属性值 但是IE下console出来都是有值的  火狐谷歌都没问题  求大神解惑!!!      

 

 

     function drawThead(){
                var threadDiv = $('<div class="thread_div">');
                var threadTable = $('<table class="table table-striped table-bordered table-hover datagrid">');
                var thead = $("<thead></thead>");
                $.each(newOptions.headerGroupColumns,function(i,header){
                    var tr = $("<tr>");
                    $.each(header,function(j,column){
                        var th = $("<th>");
                        th.css("text-align", newOptions.align);                
-从这里开始报错-------------》   th.attr("name",column.name);
                        th.append(column.title);
                        if(column.width){
                            th.width(column.width);
                        }
                        if(column.sort){
                            var span = $("<span class=\"glyphicon\">");
                            th.append(span);
                            th.bind("click", column.name, sortClick);
                            if(newOptions.initSortField && newOptions.initSortField[column.name]){
                                addSort(span, column.name);
                            }
                        }
                        if(column.display != undefined && !column.display){
                            th.hide();
                        }
                        if(column.level){
                            th.attr("level", column.level);
                        }
                        if(column.columns){
                            th.attr("colspan", column.columns.length);
                        }
                        if(column.pid){
                            th.attr("pid", column.pid);
                        }
                        tr.append(th);
                    });
                    thead.append(tr);
                });
                //添加序号,checkbox,radio
                var trFirst = thead.find("tr:first");
                if(newOptions.rownum){
                    var rownumTh = $("<th>序号</th>");
                    rownumTh.css("text-align", newOptions.align);
                    rownumTh.width(60);
                    rownumTh.attr("name", "rownum");
                    rownumTh.prependTo(trFirst);
                }
                if(newOptions.checkbox){
                    var checkbox = $('<input type="checkbox" id="selectAll">');
                    checkbox.bind("click", function(){
                        var selectCheckbox = me.find("input[name='selectOne']");
                        $.each(selectCheckbox,function(i,selectOne){
                            selectOne.checked = checkbox[0].checked;
                        });
                    });
                    var checkboxTh = $("<th>");
                    checkboxTh.css("text-align", "left");
                    checkboxTh.width(35);
                    checkboxTh.append(checkbox);
                    checkboxTh.attr("name", "checkbox");
                    checkboxTh.prependTo(trFirst);
                }
                if(newOptions.radio){
                    var radio = $('<input type="radio" id="selectAll" disabled>');
                    var radioTh = $("<th>");
                    radioTh.css("text-align", "left");
                    radioTh.width(35);
                    radioTh.append(radio);
                    radioTh.attr("name", "radio");
                    radioTh.prependTo(trFirst);
                }
                //合并多表头
                if(newOptions.headerGroupColumns.length > 1){
                    trFirst.find("th:not(th[colspan])").attr("rowspan",newOptions.headerGroupColumns.length);
                    addEmptyTrToThread(thead);
                    threadTable.addClass("group_table");
                }
                
                if(newOptions.headerContextMenu){
                    headerContextMenu(thead);
                }
                threadTable.append(thead);
                threadDiv.append(threadTable);
                return threadDiv;
            }

cap_sky的主页 cap_sky | 初学一级 | 园豆:102
提问于:2016-12-10 16:06
< >
分享
所有回答(5)
0

header什麼內容,debug看一下吧!

RosonJ | 园豆:4910 (老鸟四级) | 2016-12-12 09:29

header 就是数据- -

谷歌 [Object, Object, Object, Object, Object, Object, Object, Object]

 IE8 日志: [object Object],[object Object],[object Object]

支持(0) 反对(0) cap_sky | 园豆:102 (初学一级) | 2016-12-12 10:29

@cap_sky: 

你提供這種內容還真沒幫助..

支持(0) 反对(0) RosonJ | 园豆:4910 (老鸟四级) | 2016-12-12 10:33

@RosonJ:汗  萌新一只 完全没有头绪 现在IE8就是报错th.prop("name",column.name);这行获取不到name值 ,th.prop("name") 这样console是有值的  column.name 也是有数据的 

不知道需要提供什么内容有帮助- -·

支持(0) 反对(0) cap_sky | 园豆:102 (初学一级) | 2016-12-12 10:56

@cap_sky: 

你把中斷點下在出錯的行,執行到那行時切換到console

執行下面兩句,看看結果

console.dir(column.name);

console.dir(th);

支持(0) 反对(0) RosonJ | 园豆:4910 (老鸟四级) | 2016-12-12 11:00

@RosonJ: 

        th.prop("name",column.name);
                        console.dir(column.name);
                        console.dir(th);
                        debugger;

谷歌下 console.dir(column.name);console.dir(th);   就是显示 一个name名字和 一个 n.fn.init[1]

IE8显示了数据里  所有的name名字 和所有的 {0 : [object],  length : 1,…… 好多代码}

支持(0) 反对(0) cap_sky | 园豆:102 (初学一级) | 2016-12-12 11:50
0

报错时column对象是什么?

晓菜鸟 | 园豆:2594 (老鸟四级) | 2016-12-12 10:05

谷歌里是这些Object {name: "model", title: "型号", width: "160"}

      Object {name: "logoid", width: 160, align: "center", title: "应用名称", mergeLevel: 1}

IE8里是 日志: [object Object]
    日志: [object Object]
    日志: undefined

 

支持(0) 反对(0) cap_sky | 园豆:102 (初学一级) | 2016-12-12 10:26
0

var th = $("<th>");
                        th.css("text-align", newOptions.align);                
-从这里开始报错-------------》   th.attr("name",column.name);
                        th.append(column.title);

-----------------------------------------------------------------------------

name属性的问题, th标签没有name属性, 你可以使用class或者是id

、熙和 | 园豆:1508 (小虾三级) | 2016-12-12 11:55

换了

算是自定义属性   都可以获取到当前属性值  就是替换的时候报错

报错的应该是column.name  这个的name   打断点 谷歌是显示单一个 name值 一个th
ie是显示的遍历了所有name


支持(0) 反对(0) cap_sky | 园豆:102 (初学一级) | 2016-12-13 15:45

@cap_sky: 

 

对了,jQuery 2.XXX 新特性 不再支持 IE 6/7/8 

另外jQuery的each在ie8下有些问题,你可以参考,更换一替代方案

http://blog.csdn.net/yeliang0616/article/details/12080099

支持(0) 反对(0) 、熙和 | 园豆:1508 (小虾三级) | 2016-12-13 16:04
0

column.name

    你的column.XXX来自于对象column,column需是一个对象应该没啥问题,IE8 你可以F12调试脚本,你断点看一下。脚本只要细心点,还是很好调的。或者你把IE8下的浏览器报错贴一下。

Xxgao | 园豆:170 (初学一级) | 2016-12-15 17:16
0

  var th = $("<th>");==》  var th = $("th"); 、、、 var th = $("<th></th>");

Jimmy-Lee | 园豆:144 (初学一级) | 2016-12-16 10:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册