我正在创建一个文本框数组。并且每个框都有相应的del和edit选项。
for(i=0;i<5;i++)
{
<input type='text' id='pp_insti' name='pp_insti[]' value='"+institute+"' style='display:none;'>
<input type='button' class='edit-button' id='pp_edit name='pp_edit[]' onclick='pp_edit();'/>
<input type='button' class='del-button' id='pp_del name='pp_del[]' onclick='pp_del();'/>
}
我应该为pp_edit传递什么值的索引,所以我知道要编辑哪个pp_inst []。
任何人都可以帮忙..谢谢
答案 0 :(得分:0)
您尝试使用相同的ID
(pp_insti
)创建多个文本框。这是不允许的。
相反,您可以根据pp_insti_1
的值为其提供pp_insti_2
,i
等ID。然后,您可以将i
的值传递给编辑和删除功能,以便能够找到感兴趣的文本框。
答案 1 :(得分:0)
您不需要传递值,因为onclick处理程序在自动传递给它的情况下运行。因此,将pp_edit()
的函数定义更改为pp_edit(ev)
,然后在函数内部使用elem=ev.target
,其中elem将是单击的DOM元素。
或者,您可以将this
关键字传递给每次调用pp_edit:onclick='pp_edit(this);
,然后定义pp_edit:pp_edit(obj)
。现在在pp_edit中,obj
引用了被点击的元素。
第三种方法是以编程方式设置onclick处理程序,而不是内联:
for(....){
elem=document.createElement('...');
elem.onclick=pp_edit;
}
现在,当调用pp_edit时,它将位于被点击元素的上下文中,而在pp_edit中,this
关键字将引用被点击的元素。
注意:正如另一位用户指出的那样,您的代码无效,但我假设您发布了这样的方式来表达您的观点。如果没有,您肯定需要查找document.createElement()
等函数。