var ids = 0;
function add(){
var f = document.getElementById("divVoteItem");
var fd = document.createElement("fieldset");
fd.id = ids + "";
var ld = document.createElement("legend");
ld.innerHTML = prompt("请输入项目标题","标题");
if("null" == ld.innerHTML)
{
return;
}
fd.appendChild(ld);
for(var i=0;i<3;i++){
var br = document.createElement("p");
var txt = document.createElement("input");
txt.id = fd.id + "-" + i
txt.style.width = "85%";
var del = document.createElement("button");
del.onclick = function DelOption(){document.getElementById(txt.id).parentNode.removeChild(document.getElementById(txt.id));del.style.display='none';};
del.value="删除";
fd.appendChild(txt);
fd.appendChild(del);
fd.appendChild(br);
alert(txt.id);
}
f.appendChild(fd);
ids++;
}添加事件的代码: del.onclick = function DelOption(){document.getElementById(txt.id).parentNode.removeChild(document.getElementById(txt.id));
在删除的时候不管点哪个按钮,都只会删除最后一个,这是为什么呢?
解决方案 »
- 函数传值问题
- JQ,AJAX的问题,为什么ie和gg都可以,就FF不响应不行了?
- Extjs3.0
- 怎么用JS的正则表达式去掉不完整的HTML代码?
- frameset 间怎么传递函数
- 紧急求助。javascript实现插入falsh问题
- js 改变表格高度
- 问源码: 实现数据结构 PriorityQueue, Doubly Linked List, Map, Ordered Binary Tree, Set 的基本实现
- javascript 中如何vs.net的后台函数或vs.net的button_click事件
- 怎么加站点记数器?
- 正则表达式(Editplus替换)
- 分享:自己翻译的 Prototype 1.6.0.3 中文参考手册,散分
for(var i=0;i<3;i++){
(function(i){
var br = document.createElement("p");
var txt = document.createElement("input");
txt.id = fd.id + "-" + i
txt.style.width = "85%";
var del = document.createElement("button");
del.onclick = function DelOption(){document.getElementById(txt.id).parentNode.removeChild(document.getElementById(txt.id));del.style.display='none';};
del.value="删除";
fd.appendChild(txt);
fd.appendChild(del);
fd.appendChild(br);
alert(txt.id);})(i)}
for(var i=0;i<3;i++){
(function (i) {
....
})(i);
}
return function(){
document.getElementById(id).parentNode.removeChild(
document.getElementById(id));
this.style.display = "none";
}
})(txt.id);
俺还是喜欢拆包!L@_@K
function IsDefined(obj) {
return obj !== undefined;
}function DelOption(deleteButton) {
if (!IsDefined(deleteButton)) {
deleteButton = this;
}
if (IsDefined(deleteButton.delTarget)) {
deleteButton.delTarget.parentNode.removeChild(deleteButton.delTarget);
}
deleteButton.style.display = 'none';
}var ids = 0;
function add(){
var f = document.getElementById("divVoteItem");
var fd = document.createElement("fieldset");
fd.id = ids + "";
var ld = document.createElement("legend");
ld.innerHTML = prompt("请输入项目标题","标题");
if("null" == ld.innerHTML)
{
return;
}
fd.appendChild(ld);
for(var i=0;i<3;i++){
var br = document.createElement("p");
var txt = document.createElement("input");
txt.id = fd.id + "-" + i
txt.style.width = "85%";
var del = document.createElement("button");
// 为动态属性 delTarget 赋值!
del.delTarget = txt;
del.onclick = DelOption;
del.value="删除";
fd.appendChild(txt);
fd.appendChild(del);
fd.appendChild(br);
alert(txt.id);
}
f.appendChild(fd);
ids++;
}
function DelOption(deleteButton) {
if (!IsDefined(deleteButton)) {
deleteButton = this;
} DeleteTextbox(deleteButton); Disappear(deleteButton);
}function IsDefined(obj) {
return obj !== undefined;
}function DeleteTextbox(btn) {
if (IsDefined(btn.delTarget)) {
btn.parentNode.removeChild(btn.delTarget);
}
}function Disappear(ele) {
ele.style.display = 'none';
}
if(oTarget.addEventListener){
oTarget.addEventListener(sEventType,fnHandler,false)
}else if(oTarget.attachEvent){
oTarget.attachEvent("on"+sEventType,fnHandler)
}else{
oTarget["on"+sEventType]=fnHandler
}
};
function removeEventHandler(oTarget,sEventType,fnHandler){
if(oTarget.removeEventListener){
oTarget.removeEventListener(sEventType,fnHandler,false)
}else if(oTarget.detachEvent){
oTarget.detachEvent("on"+sEventType,fnHandler)
}else{
oTarget["on"+sEventType]=null
}
};