看看 我这代码那里出了问题 总是出现缺少对象 以后才出效果
var xmlhttp = null;var currentStep = 0;
var gseq = 1;
var gLastDetailImgObj = null;
var innerTR;
function gatXY(eId, bid, line) {
$('#tab2 tr').each(function() {
$(this).css("background-color", "");
$(this).css("color", "#fff");
});
var seq = $(line).children("td").html();
$(line).css("background-color", "#888");
$(line).css("color", "red");
currentStep = seq;
if (window.ActiveXObject) {// code for IE5 and IE6
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {// code for all new browsers
xmlhttp = new XMLHttpRequest();
}
//找到名为“Text1”的文本框
//var name=document .getElementById ("DropDownList1");
//利用Open方法向指定URL
//查询字符串“name”将文本框中的数据传送到目标页面
if (xmlhttp != null) {
//设置当服务器响应返回时用于处理响应的函数名
xmlhttp.onreadystatechange = OnsMessageBack;
xmlhttp.open("GET", "droplist.aspx?id=" + bid, true);
//送发请求
xmlhttp.send(null);
}
else {
alert("Your browser does not support XMLHTTP!");
}
}
function OnsMessageBack() {
//判断请求状态及HTTP状态是否都能满足条件
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var newDivId = null;
var evt = getEvent();
var imgObj = evt.srcElement || evt.target;
var tr = getOuterObj(imgObj, 'TR'); // 得到tr对象
if (!tr.newDivId) {
debugger
var newTr = document.createElement("TR"); // 创建tr
var newTd = document.createElement("td"); // 创建td
innerTR = xmlhttp.responseText;
newTd.setAttribute("colSpan", tr.children.length);
newTd.setAttribute("style", "background-color:#f2f09f");
newTd.style.backgroundColor = "#f2f09f";
newDivId = 'detaildiv' + (gseq++); // 每一行内嵌的divID,每一行的ID都不同
var newDiv = document.createElement("div"); // 创建div
newDiv.setAttribute("ID", newDivId);
newTr.appendChild(newTd); // tr中添加td
$(newDiv).html(innerTR);
newTd.appendChild(newDiv); // td中添加div
tr.parentNode.insertBefore(newTr, tr.nextSibling); // 必须通过tr的父节点才能用insertBefore,表示插入某个元素,这里表示在tr下个元素的前面(tr的后面)插入一行
tr.newDivId = newDivId; // 把新生成的div的ID赋给DIV
}
switchVisible(imgObj); // 控制展开还是合上内嵌表格
if (gLastDetailImgObj != imgObj) {
switchVisible(gLastDetailImgObj);
gLastDetailImgObj = imgObj;
}
else {
gLastDetailImgObj = null;
}
}
else {
document.getElementById("dirlist").innerHTML = "";
}
}
function divhidde() {
document.getElementById('Layer1').style.display = 'none';
}
function switchVisible(imgObj) {
if (!imgObj) return; // 如果imgObj对象为空,则返回
var tr = getOuterObj(imgObj, 'TR');
var pvisible = ('true' != tr.currentVisibility);
tr.currentVisibility = (pvisible ? 'true' : 'false'); // pvisible为真时,tr.currentVisibility为true;pvisible为假时,tr.currentVisibility为false;
tr.nextSibling.style.display = (pvisible ? '' : 'none'); // pvisible为真时,tr.nextSibling.style.display为'';pvisible为假时,tr.nextSibling.style.display为none;
}
//取得对象外围符合指定标签的第一个对象
function getOuterObj(obj, tagName) {
while (obj != null) {
if (obj.tagName == tagName)
return obj;
obj = obj.parentNode;
}
return null;
}
function getEvent() {
if (document.all) {
return window.event; //如果是ie
}
func = getEvent.caller;
while (func != null) {
var arg0 = func.arguments[0];
if (arg0) {
if ((arg0.constructor == Event || arg0.constructor == MouseEvent) || (typeof (arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) {
return arg0;
}
}
func = func.caller;
}
return null;
}
--------------------编程问答-------------------- 怎么JQUERY和JS混合用呢,错误提示有说哪句错误吗
你用jquery的ajax函数将这些代码精简一下 --------------------编程问答-------------------- var imgObj = evt.srcElement || evt.target; //这句 是错误代码
--------------------编程问答--------------------
--------------------编程问答-------------------- 我 试了 一样的 效果 啊。。。 --------------------编程问答-------------------- 求解 啊 急啊 --------------------编程问答-------------------- js这样看很头疼 建议用FireFox的附加组件FireBug调试一下去 --------------------编程问答-------------------- 在次求解 急用 啊 --------------------编程问答-------------------- 为什么没人回答啊
var evt = getEvent();
var imgObj = evt.srcElement || evt.target;
替换成
var evt =evt ||window.event; //不使用你的那个getEvent()方法试试
var imgObj = evt.srcElement||evt.target;
补充:.NET技术 , ASP.NET