调用JS代码,传过去的参数为什么变成了[OBJECT],而不是值类型呢?怎么解决啊,求高手!!!

调用JS代码,完成JSP页面动态添加删除页面元素,可是调用删除元素的方法的时候,传过去的参数变成了[OBJECT],导致取不到页面的元素。求原因!!!--js代码vari... 调用JS代码,完成JSP页面动态添加删除页面元素,可是调用删除元素的方法的时候,传过去的参数变成了[OBJECT],导致取不到页面的元素。求原因!!!
--js代码
var i=0;
function removeElement(id)
{
alert(id);
document.getElementById(id).parentNode.removeChild(document.getElementById(id));
document.getElementById('btn'+i).parentNode.removeChild(document.getElementById('btn'+i));

document.getElementById('br'+i).parentNode.removeChild(document.getElementById('br'+i));

i--;
}
function addElement(textnode,parent,element_type,element_name,changeLine,other_info,delete_info)
{
if(document.uniqueID) {
//IE

var form1=document.getElementById(parent);

var node=document.createTextNode(textnode);

var id=element_name+i;

form1.appendChild(node);

var _new_doc_num = document.createElement("<input type='"+element_type+"' name='"+element_name+"' "+other_info+" id='"+id+"'/>");

form1.appendChild(_new_doc_num);

if(delete_info=="y")
{
var _move = document.createElement("<input type='button' name='delete' value='delete' id='btn"+i+"' onclick='removeElement("+id+")'/>");

form1.appendChild(_move);
}
if(changeLine=="y")
{
var _br=document.createElement("<br id='br"+i+"'/>");
form1.appendChild(_br);
}
var _hidden=document.createElement("<input type='hidden' name='hidden' id='hidden_"+i+"' value='"+element_type+"'/>");
i++;
}else {
//Non_IE
}

--页面元素代码
<tr><td><input type="button" name="addElement" onclick="addElement('String','form1','text','string','y','','y')" value="添加String"/></td>
展开
 我来答
yongirl320
2011-11-21 · TA获得超过830个赞
知道小有建树答主
回答量:280
采纳率:100%
帮助的人:479万
展开全部
这里错了

var _move = document.createElement("<input type='button' name='delete' value='delete' id='btn"+i+"' onclick='removeElement("+id+")'/>");

改成

var _move = document.createElement("<input type='button' name='delete' value='delete' id='btn"+i+"' onclick='removeElement(\""+id+"\")'/>");

调用的时候少了 引号 导致 字符串变成不存在的变量了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kim_1004
2011-11-21 · 超过21用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:51.7万
展开全部
传过去的参数变成了[OBJECT]的情况在下会情况发生
比如
var name = document.getElementById(“name”);
当页面中名字为name的tag有1个以上的时候name的值是[OBJECT]
alert(name.length);会输出他的长度
以此长度循环输出name[i].value会得到相应的值

希望对你有所帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhihuo42
2011-11-21 · TA获得超过121个赞
知道答主
回答量:450
采纳率:0%
帮助的人:157万
展开全部
如果你是采集别人的网站的内容那就没有办法了或者你把js文件的内容也输出 script 改成 include . 我倒是有种生成静态网页的方法!!需要的话
追问
没采集别人的网站的内容。改成INCLUDE方法,跟放在页面里面,效果应该一样的把。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式