img.onclick = function(){
return test();
}
return test();
}
解决方案 »
- jquery初级问题!
- extjs 图标多出来个问号
- 获取滚动条的位移
- JS有没办法知道资源文件已在本地缓存?
- 关于javascript隐藏div的问题,大家看看我的代码有什么问题。
- ie6 js 文件下载
- 如何做检测
- 点href链接时状态栏总会出现要链接的网址,就是设了 <a onmouseover="window.status='hello'" > 也还会出现网址啊,怎么不让它出现要链接的
- 在模态对话框中,提交一个FORM后,action的页面会打开一个新的页面,有没办法也让它在模态对话框中?
- 用JS给网页input赋值失效
- 怎么限制用户选择次数?(100分)
- 如何在当前页面点击一个按钮后再弹出一部分?
还有就是用javascript 创建的元素为什么在源码里面看不到呢?
非常感谢,马上就结分。
javascript创建的代码,是在js执行的过程中动态向页面中添加的,它不像jsp或者asp一样把java或者vb代码能够生成
静态页面代码,所以你在源码里面看不见。
var table = tableName;
for(i=0;i<tbody.childNodes.length;i++)
{
if(tbody.childNodes[i].childNodes[0].childNodes[0].id == id)
{
tbody.removeChild(tbody.childNodes[i]);
return;
}
}
这个时候它会报错,提示:没有可用于当前位置的源代码。
这又是为什么呢
for(i=0;i <tbody.childNodes.length;i++)
{
if(tbody.childNodes[i].childNodes[0].childNodes[0].id == id)
{
tbody.removeChild(tbody.childNodes[i]);
return;
}
} 当i=0时, if(tbody.childNodes[i].childNodes[0].childNodes[0].id == id) 为true,则删掉childNodes[0],此时tbody.childNodes.length-- 。你看到问题了么?? 只要执行过一次remove都会数组越界的
tBody.childNodes[i]:第i+1行
tBody.childNodes[i].childNodes[0]:第i+1行第一个单元格
tBody.childNodes[i].childNodes[0].childNodes[0]: div楼主确定Table中每个row都是这样的格式??楼主创建table的方法可真麻烦,这虽然是标准的DOM,但是,
在javascript,对于动态创建table,有一套特定的方法:
创建行:insertRow
删除行:deleteRow
行的数组:rows
创建单元格:insertCell
删除单元格:deleteCell
单元格的数组:cells
其实yes555已经把问题说得比较明白了,就是数组越界的问题,
所以你在循环时,应当使用类似于for(i=tbody.childNodes.length;i>0;i--)
这样的方式来进行删除行的操作,并且注意循环内部要使用i-1而不是i。另外我对JGood所说的有一点异议,就是他说的方式,应该只适用于
ie,而不适用于firefox,所以对标准浏览器的支持恐怕会有问题,
当然也许是我记错了,现在在上班,也没有时间测试一下。
太谢谢了!!!!!
你解决了我放置N久没有解决的东西http://topic.csdn.net/u/20070521/13/04412356-cf62-4632-8fe4-6e0532e9c31b.html
用javascript改变内容时为什么没有执行且不报错