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;
}
header什麼內容,debug看一下吧!
header 就是数据- -
谷歌 [Object, Object, Object, Object, Object, Object, Object, Object]
IE8 日志: [object Object],[object Object],[object Object]
@cap_sky:
你提供這種內容還真沒幫助..
@RosonJ:汗 萌新一只 完全没有头绪 现在IE8就是报错th.prop("name",column.name);这行获取不到name值 ,th.prop("name") 这样console是有值的 column.name 也是有数据的
不知道需要提供什么内容有帮助- -·
@cap_sky:
你把中斷點下在出錯的行,執行到那行時切換到console
執行下面兩句,看看結果
console.dir(column.name);
console.dir(th);
@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,…… 好多代码}
报错时column对象是什么?
谷歌里是这些Object {name: "model", title: "型号", width: "160"}
Object {name: "logoid", width: 160, align: "center", title: "应用名称", mergeLevel: 1}
IE8里是 日志: [object Object]
日志: [object Object]
日志: undefined
var th = $("<th>");
th.css("text-align", newOptions.align);
-从这里开始报错-------------》 th.attr("name",column.name);
th.append(column.title);
-----------------------------------------------------------------------------
name属性的问题, th标签没有name属性, 你可以使用class或者是id
换了
算是自定义属性 都可以获取到当前属性值 就是替换的时候报错
报错的应该是column.name 这个的name 打断点 谷歌是显示单一个 name值 一个th
ie是显示的遍历了所有name
@cap_sky:
对了,jQuery 2.XXX 新特性 不再支持 IE 6/7/8
另外jQuery的each在ie8下有些问题,你可以参考,更换一替代方案
http://blog.csdn.net/yeliang0616/article/details/12080099
column.name
你的column.XXX来自于对象column,column需是一个对象应该没啥问题,IE8 你可以F12调试脚本,你断点看一下。脚本只要细心点,还是很好调的。或者你把IE8下的浏览器报错贴一下。
var th = $("<th>");==》 var th = $("th"); 、、、 var th = $("<th></th>");