大家好,我正在尝试将'text'输入类型替换为'password'。它适用于以下代码:
function replaceT(obj){
var newO=document.createElement('input');
newO.setAttribute('type','password');
newO.setAttribute('name',obj.getAttribute('name'));
obj.parentNode.replaceChild(newO,obj);
newO.focus();
}
但是我想在新输入中添加我之前输入的类,我尝试过这样的事情:
function replaceT(obj){
var newO=document.createElement('input');
newO.setAttribute('type','password');
newO.setAttribute('className' obj.getAttribute('class'));
newO.setAttribute('name',obj.getAttribute('name'));
obj.parentNode.replaceChild(newO,obj);
newO.focus();
}
我做错了什么,或者如果不可能,如何手动设置新类..谢谢
答案 0 :(得分:2)
newO.setAttribute('className' obj.getAttribute('class'));
您正在使用'className'来设置属性,但使用'class'来获取它。两者都必须是'className'。
答案 1 :(得分:2)
这适用于所有浏览器:
newO.className = obj.className;
我不确定您是否应该在className
中使用class
或setAttribute
,但不管它是什么,它都与getAttribute
中的相同,所以这个肯定是错的:
newO.setAttribute('className' obj.getAttribute('class'));
答案 2 :(得分:0)
很抱歉朝另一个方向走,但为什么要更换元素而不是仅仅改变它的类型?您不必担心将相同的className添加到新元素。
只是好奇。