js的setAttribute为什么不起作用?

以下这段代码是替换表单中INPUT,textarea,select的值为span,在一个页面用的好好的,为什么换了个页面就不行?查了后问题在obj.setAttribut... 以下这段代码是替换表单中INPUT,textarea,select的值为span,在一个页面用的好好的,为什么换了个页面就不行?查了后问题在obj.setAttribute("innerHTML", elements[i].value);改为obj.innerHTML= elements[i].value;就行了,我就奇怪怎么会这样,请高手指点
function RemoveControl(elements) {
var arrObj = new Array();
var count = elements.length;
for (var i = 0; i < count; i++) {
if (elements[i] == undefined)
continue;
var obj = document.createElement('span');
obj.style.width = elements[i].style.width;
obj.style.textAlign = elements[i].style.textAlign;
switch (elements[i].type) {
case "text":
obj.setAttribute("innerHTML", elements[i].value);
break;
case "textarea":
obj.setAttribute("innerHTML", elements[i].innerHTML);
elements[i].innerHTML = '';
break;
case "select-one":
obj.setAttribute("innerHTML", elements[i].options[elements[i].selectedIndex].text);
elements[i].options.length = 0;
break;
}
elements[i].parentNode.insertBefore(obj, elements[i]);
arrObj[arrObj.length] = elements[i];
}

//删除表单原控件
for (var i = 0; i < arrObj.length; i++) {
arrObj[i].removeNode();
}
}
展开
 我来答
匿名用户
2012-02-16
展开全部
setAttribute是设置网页元素的属性,就是在标签里内如<img />标签的src属性。innerHTML不是属性
只是JS里内代表一个双标记中间的文本如:<span> </span>中间的字符。innerHTML属性所以只会原样输出。
追问
同一台电脑啊,都是IE8,为什么会有两个不同的结果呢
追答
span不能这样写吧 它没innerHTML属性设置了也没用啊
你以前使用文本框接收吗?文本框可以用setAttribute("value", elements[i].value);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
woshidaniel
推荐于2017-10-04 · TA获得超过9241个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:938万
展开全部
注意setAttribute("属性名",值)和dom节点.属性名=值这两种方式的区别:
1、前者是自定义属性,是在attributes下的,dom节点无法直接访问
2、后者是dom的属性,是直接在dom节点可访问的。
对于innerHTML要小心使用,是非标准属性,特别在ie中,像table,tr等innerHTML都只只读属性,不能修改。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式