javascript 使用innerHTML创建的层怎样删除 obj.removeChild(document.getElementById("newDiv")); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 innerHTML 虽说好用,但最好还是要用 createElement来做这个事情更好http://www.scriptlover.com obj.removeChild(document.getElementById("newDiv")); 谢谢,二楼的方法是可以,但是现在是innerHTML中有好几个类似newDiv的层,怎么具体地删除某一个呢?三楼的方式好象只能用在以createElement方法创建的层时才可以removeChild,而innerHTML方式写入的层无法通过document.getElementById找到.四楼说的是对的,可我是在ajax中生成的字符串,只能以innerHTML的方式赋值给一个层,如何将这样产生的层内的层删除呢?ajax的代码如下:<%@ WebHandler Language="C#" Class="AddToCar" %>using System;using System.Web;using System.Data;using System.Data.SqlClient;public class AddToCar : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string p = (context.Request.QueryString["id"]).ToString(); context.Response.Write(GetDb(p)); } public bool IsReusable { get { return false; } } public string GetDb(string p) { int amount = 1; string tableid =Convert.ToString( p); SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["sqlcon"].ToString()); SqlCommand cmd = new SqlCommand("selectProductByProductId", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("productId", SqlDbType.VarChar).Value = p; string str = "<div id='tableid'><table border='0' style='text-align:left; '>"; try { cmd.Connection.Open(); SqlDataReader sdr = cmd.ExecuteReader(); if (sdr.HasRows) { while (sdr.Read()) { str += "<tr>"; str += "<td width='59'><div id='nav'><div id='li' name='li' onmouseover='this.className+=(this.className.length>0? \" \": \"\") + \"sfhover\";' onmouseout='this.className=this.className.replace(new RegExp(\"( ?|^)sfhover\"),\"\");'><div style='display:inline'><a href='#' style='display:inline'><img width='50' height='56' src='" + sdr["productImgUrl"].ToString() + "'/></a></div><div id='ul' style='display:inline;text-align:right'><div id='in'> <img width='59' height='60' src='" + sdr["productImgUrl"].ToString() + "' style='width:283px;height:300px;padding-top:3px;' alt=''/></div></div></div></div></td></tr>"; str += "<tr><td width='59'>名称:</td></tr><tr><td>" + sdr["productName"].ToString() + "</td></tr>"; str += "<tr><td>价格:</td></tr><tr><td>¥" + (double.Parse(sdr["listPrice"].ToString()) * double.Parse(sdr["discount"].ToString())).ToString() + "元</td></tr>"; str += "<tr><td>数量:" + amount.ToString() + "</td></tr>"; } str += "</table><div id='clos' style='text-align:left;cursor:hand' onclick='delByTableId(\"" + tableid + "\")'>删除 X</div><br/></div>"; sdr.Close(); } else str = "尚无这类商品"; } catch (SqlException ex) { str = ex.Message; } finally { cmd.Connection.Close(); cmd.Dispose(); conn.Dispose(); } return str; }}删除层的javascript如下:<script language="javascript" type="text/javascript">function delByTableId(tableid){ //alert(tableid); //var objtable=document.getElementById(tableid); //alert(objtable); //objtable.parentNode.removeChild(objtable); //alert("okkkk");}</script>这里的javascript中的第三句alert(objtable);运行时,总是输出结果为null。即不能getElementById来获得innerHTML中的层,也就无法继续执行后面的removeChild,如何是好? 好象只能用在以createElement方法创建的层时才可以removeChild---这是听哪里说来的,乖乖那个咚咚 obj=document.getElementbyId("oldDiv"); obj.removeChild(document.getElementById("newDiv"));or obj=document.getElementbyId("oldDiv"); obj.innerHTML = ""; Jquery.from异步提交 100分,求助复杂js选择checkbox js创建tr td问题? 如何在网页中嵌入一个JAVABEAN控件? js高手帮忙,谢谢~~~~ iframe取值问题 html里面的对象的问题 下拉框的选择问题 推荐一个可以在浏览器中使用Office的控件 数组里面的定时器,怎么清除? 子窗口刷新父窗口的问题,求解决 改变div大小,在ie下ok,用firefox就没反应,为什么啊?
<%@ WebHandler Language="C#" Class="AddToCar" %>using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;public class AddToCar : IHttpHandler { public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string p = (context.Request.QueryString["id"]).ToString();
context.Response.Write(GetDb(p));
} public bool IsReusable
{
get
{
return false;
}
} public string GetDb(string p)
{
int amount = 1;
string tableid =Convert.ToString( p);
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["sqlcon"].ToString());
SqlCommand cmd = new SqlCommand("selectProductByProductId", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("productId", SqlDbType.VarChar).Value = p;
string str = "<div id='tableid'><table border='0' style='text-align:left; '>";
try
{
cmd.Connection.Open();
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.HasRows)
{
while (sdr.Read())
{
str += "<tr>";
str += "<td width='59'><div id='nav'><div id='li' name='li' onmouseover='this.className+=(this.className.length>0? \" \": \"\") + \"sfhover\";' onmouseout='this.className=this.className.replace(new RegExp(\"( ?|^)sfhover\"),\"\");'><div style='display:inline'><a href='#' style='display:inline'><img width='50' height='56' src='" + sdr["productImgUrl"].ToString() + "'/></a></div><div id='ul' style='display:inline;text-align:right'><div id='in'> <img width='59' height='60' src='" + sdr["productImgUrl"].ToString() + "' style='width:283px;height:300px;padding-top:3px;' alt=''/></div></div></div></div></td></tr>";
str += "<tr><td width='59'>名称:</td></tr><tr><td>" + sdr["productName"].ToString() + "</td></tr>";
str += "<tr><td>价格:</td></tr><tr><td>¥" + (double.Parse(sdr["listPrice"].ToString()) * double.Parse(sdr["discount"].ToString())).ToString() + "元</td></tr>";
str += "<tr><td>数量:" + amount.ToString() + "</td></tr>";
}
str += "</table><div id='clos' style='text-align:left;cursor:hand' onclick='delByTableId(\"" + tableid + "\")'>删除 X</div><br/></div>";
sdr.Close();
}
else
str = "尚无这类商品";
}
catch (SqlException ex)
{
str = ex.Message;
}
finally
{
cmd.Connection.Close();
cmd.Dispose();
conn.Dispose();
}
return str;
}}删除层的javascript如下:
<script language="javascript" type="text/javascript">
function delByTableId(tableid)
{
//alert(tableid);
//var objtable=document.getElementById(tableid);
//alert(objtable);
//objtable.parentNode.removeChild(objtable);
//alert("okkkk");
}
</script>这里的javascript中的第三句alert(objtable);运行时,总是输出
结果为null。即不能getElementById来获得innerHTML中的层,也就无法继续执行后面的removeChild,如何是好?
---
这是听哪里说来的,乖乖那个咚咚
obj.removeChild(document.getElementById("newDiv"));or obj=document.getElementbyId("oldDiv");
obj.innerHTML = "";