Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ettings.aiDisplay; //使用所有行 else aiRows=oSettings.aiDisplayMaster;//所有行号 //设置数据数组 var asResultData=新数组(); 对于(变量i=0,c=aiRows.length;i-1)继续; //否则,将值推送到结果数据数组上 否则作为resultdata.push(sValue); } 返回asResultData.sort(); } }(jQuery));_Javascript_Jquery_Internet Explorer 9_Datatables_Innerhtml - Fatal编程技术网

Javascript ettings.aiDisplay; //使用所有行 else aiRows=oSettings.aiDisplayMaster;//所有行号 //设置数据数组 var asResultData=新数组(); 对于(变量i=0,c=aiRows.length;i-1)继续; //否则,将值推送到结果数据数组上 否则作为resultdata.push(sValue); } 返回asResultData.sort(); } }(jQuery));

Javascript ettings.aiDisplay; //使用所有行 else aiRows=oSettings.aiDisplayMaster;//所有行号 //设置数据数组 var asResultData=新数组(); 对于(变量i=0,c=aiRows.length;i-1)继续; //否则,将值推送到结果数据数组上 否则作为resultdata.push(sValue); } 返回asResultData.sort(); } }(jQuery));,javascript,jquery,internet-explorer-9,datatables,innerhtml,Javascript,Jquery,Internet Explorer 9,Datatables,Innerhtml,createSelect()在新浏览器中运行良好,而我一直在使用它来尝试一些东西 function fnCreateSelect(aData, j) { switch (j) { case 0: j = "Dest"; break; case 1: j = "Leg"; break; case 2: j = "Start"; break;

createSelect()在新浏览器中运行良好,而我一直在使用它来尝试一些东西

function fnCreateSelect(aData, j) {
                switch (j) {
                    case 0: j = "Dest"; break;
                    case 1: j = "Leg"; break;
                    case 2: j = "Start"; break;
                    case 3: j = "End"; break;
                    case 4: j = "Day"; break;
                    case 5: j = "Sort"; break;
                    case 6: j = "Service Days"; break;
                }

                var r = '<select id="'+j+'"><option value="">' + j + '</option>', i, iLen = aData.length;

                for (i = 0 ; i < iLen ; i++) {
                    r += '<option value="' + aData[i] + '">' + aData[i] + '</option>';
                }

                return r + '</select>';
            }
            function fnReCreateSelect(aData, j) {
                switch (j) {
                    case 0: j = "Dest"; break;
                    case 1: j = "Leg"; break;
                    case 2: j = "Start"; break;
                    case 3: j = "End"; break;
                    case 4: j = "Day"; break;
                    case 5: j = "Sort"; break;
                    case 6: j = "Service Days"; break;
                }

                var s = document.getElementById(j);
                var op0 = document.createElement("option");
                op0.text = "";
                op0.value = j;
                s.options.add(op0);

                var iLen = aData.length;

                for (i = 0 ; i < iLen ; i++) {
                    var op = document.createElement("option");
                    op.text = aData[i]
                    op.value = aData[i];
                    s.options.add(op);
                }

                return s;
            }
函数fnCreateSelect(aData,j){ 开关(j){ 案例0:j=“Dest”中断; 案例1:j=“Leg”断裂; 案例2:j=“开始”中断; 案例3:j=“End”中断; 案例4:j=“日”休息; 案例5:j=“Sort”中断; 案例6:j=“工作日”休息; } 变量r=''+j+'',i,iLen=aData.length; 对于(i=0;i在追加之前,将其包装在
中。

我将更改事件块中的代码移到dom.ready之外。然后,每次重新填充过滤器时,我都会重新注册更改事件

function selectEvent(table, t, i) {
                table.fnFilter($(t).val(), i);

                // Get array of select controls
                var a = document.getElementsByTagName('select');

                // Loop through select controls
                for (var j = 0; j < 7; j++) {
                    // If filtered array is not empty
                    if (filtered.length > 0) {
                        // If column currently being looped is not in filtered array
                        if ($.inArray(j, filtered) < 0) {
                            // If column currently being looped is not the column clicked
                            if ((t).textContent != a[j + 1].textContent) {
                                a[j + 1].outerHTML = a[j + 1].outerHTML.replace(a[j + 1].innerHTML + '</select>', fnReCreateSelect(table.fnGetColumnData(j), j) + '</select>'); // Recreate drop down list for currently looping column
                            }
                            else {
                                filtered.push(j); // Add column to filtered array
                            }
                        }
                        else
                            // If title is selected and currently looping column is the column selected
                            if ($(t).val() == "" && j == i) {
                                var index = $.inArray(j, filtered);  // Get index of column in filtered array
                                filtered.splice(index, 1);           // Remove column from filtered array
                                a[i + 1].inner = a[i + 1].outerHTML.replace(a[i + 1].innerHTML + '</select>', fnReCreateSelect(table.fnGetColumnData(i), i) + '</select>'); // Recreate drop down list for column selected (Because resetting drop down)
                            }
                    }
                    else {
                        // If column currently being looped is not the column clicked
                        if ((t).textContent != a[j + 1].textContent) {
                            var temp = fnReCreateSelect(table.fnGetColumnData(j), j);
                            var temp2 = a[j + 1].innerHTML;

                            //a[j + 1].innerHTML = fnReCreateSelect(oTable.fnGetColumnData(j), j);
                            a[j + 1].outerHTML = a[j + 1].outerHTML.replace(a[j + 1].innerHTML + '</select>', fnReCreateSelect(table.fnGetColumnData(j), j) + '</select>'); // Recreate drop down list for currently looping column  
                            var temp3 = 5;
                        }
                        else {
                            filtered.push(j); // Add column to filtered array
                        }
                    }
                }
                $('select').change(this, function () {
                    selectEvent(oTable, this, this.parentElement.cellIndex);
                });
            }
函数选择事件(表,t,i){
表.fnFilter($(t).val(),i);
//获取选择控件的数组
var a=document.getElementsByTagName('select');
//循环选择控件
对于(var j=0;j<7;j++){
//如果筛选的数组不为空
如果(过滤的长度>0){
//如果当前正在循环的列不在筛选数组中
如果($.inArray(j,已过滤)<0){
//如果当前循环的列不是单击的列
如果((t).textContent!=a[j+1].textContent){
a[j+1].outerHTML=a[j+1].outerHTML.replace(a[j+1].innerHTML++'',fnReCreateSelect(table.fnGetColumnData(j),j)+'';//为当前循环列重新创建下拉列表
}
否则{
filtered.push(j);//将列添加到已筛选数组
}
}
其他的
//如果选择了标题,并且当前循环列是选定的列
if($(t).val()==“”&&j==i){
var index=$.inArray(j,筛选);//获取筛选数组中列的索引
filtered.splice(索引,1);//从筛选数组中删除列
a[i+1].inner=a[i+1].outerHTML.replace(a[i+1].innerHTML++'',fnReCreateSelect(table.fnGetColumnData(i),i)+'');//为所选列重新创建下拉列表(因为重置下拉列表)
}
}
否则{
//如果当前循环的列不是单击的列
如果((t).textContent!=a[j+1].textContent){
var temp=fnReCreateSelect(表.fnGetColumnData(j),j);
var temp2=a[j+1].innerHTML;
//a[j+1].innerHTML=fnReCreateSelect(oTable.fnGetColumnData(j),j);
a[j+1].outerHTML=a[j+1].outerHTML.replace(a[j+1].innerHTML++'',fnReCreateSelect(table.fnGetColumnData(j),j)+'';//为当前循环列重新创建下拉列表
var-temp3=5;
}
否则{
filtered.push(j);//将列添加到已筛选数组
}
}
}
$('select')。更改(此,函数(){
选择事件(oTable、this、this.parentElement.cellIndex);
});
}

诀窍是使用outerHTML完全替换stea中的select
function fnCreateSelect(aData, j) {
                switch (j) {
                    case 0: j = "Dest"; break;
                    case 1: j = "Leg"; break;
                    case 2: j = "Start"; break;
                    case 3: j = "End"; break;
                    case 4: j = "Day"; break;
                    case 5: j = "Sort"; break;
                    case 6: j = "Service Days"; break;
                }

                var r = '<select id="'+j+'"><option value="">' + j + '</option>', i, iLen = aData.length;

                for (i = 0 ; i < iLen ; i++) {
                    r += '<option value="' + aData[i] + '">' + aData[i] + '</option>';
                }

                return r + '</select>';
            }
            function fnReCreateSelect(aData, j) {
                switch (j) {
                    case 0: j = "Dest"; break;
                    case 1: j = "Leg"; break;
                    case 2: j = "Start"; break;
                    case 3: j = "End"; break;
                    case 4: j = "Day"; break;
                    case 5: j = "Sort"; break;
                    case 6: j = "Service Days"; break;
                }

                var s = document.getElementById(j);
                var op0 = document.createElement("option");
                op0.text = "";
                op0.value = j;
                s.options.add(op0);

                var iLen = aData.length;

                for (i = 0 ; i < iLen ; i++) {
                    var op = document.createElement("option");
                    op.text = aData[i]
                    op.value = aData[i];
                    s.options.add(op);
                }

                return s;
            }
function selectEvent(table, t, i) {
                table.fnFilter($(t).val(), i);

                // Get array of select controls
                var a = document.getElementsByTagName('select');

                // Loop through select controls
                for (var j = 0; j < 7; j++) {
                    // If filtered array is not empty
                    if (filtered.length > 0) {
                        // If column currently being looped is not in filtered array
                        if ($.inArray(j, filtered) < 0) {
                            // If column currently being looped is not the column clicked
                            if ((t).textContent != a[j + 1].textContent) {
                                a[j + 1].outerHTML = a[j + 1].outerHTML.replace(a[j + 1].innerHTML + '</select>', fnReCreateSelect(table.fnGetColumnData(j), j) + '</select>'); // Recreate drop down list for currently looping column
                            }
                            else {
                                filtered.push(j); // Add column to filtered array
                            }
                        }
                        else
                            // If title is selected and currently looping column is the column selected
                            if ($(t).val() == "" && j == i) {
                                var index = $.inArray(j, filtered);  // Get index of column in filtered array
                                filtered.splice(index, 1);           // Remove column from filtered array
                                a[i + 1].inner = a[i + 1].outerHTML.replace(a[i + 1].innerHTML + '</select>', fnReCreateSelect(table.fnGetColumnData(i), i) + '</select>'); // Recreate drop down list for column selected (Because resetting drop down)
                            }
                    }
                    else {
                        // If column currently being looped is not the column clicked
                        if ((t).textContent != a[j + 1].textContent) {
                            var temp = fnReCreateSelect(table.fnGetColumnData(j), j);
                            var temp2 = a[j + 1].innerHTML;

                            //a[j + 1].innerHTML = fnReCreateSelect(oTable.fnGetColumnData(j), j);
                            a[j + 1].outerHTML = a[j + 1].outerHTML.replace(a[j + 1].innerHTML + '</select>', fnReCreateSelect(table.fnGetColumnData(j), j) + '</select>'); // Recreate drop down list for currently looping column  
                            var temp3 = 5;
                        }
                        else {
                            filtered.push(j); // Add column to filtered array
                        }
                    }
                }
                $('select').change(this, function () {
                    selectEvent(oTable, this, this.parentElement.cellIndex);
                });
            }