HTML <ELEMENT TYPE = sType... >  
Scripting object.type [ = sType ] 

解决方案 »

  1.   

    try:
    <input type=password id=x>
    <script language="JavaScript">
    <!--
    var s = x.outerHTML;
    s = s.replace(/(type=)(\S+?)/ig,'$1"text"');
    x.outerHTML = s;
    //-->
    </script>
      

  2.   

    replace(/(type=)(\S+?)/ig,'$1"text"');
    这是什么意思啊?
      

  3.   

    replace(/(type=)(\S+?)/ig,'$1"text"');
    正则表达式
    意思是把type=及其后的可见字符以type="text"来替换。$1应该是向后引用吧,指代第一个括号里的type=。
      

  4.   

    若做成密码域和文本域的切换,正则较烦,因文本域的type=text在dom内部是省略的,正则难于替换type类型。解决的另一种思路:<BODY>
    <input type=text id=password style="border:1 solid red">
    <script language="JavaScript">
    function a(o)
    {
    var id = o.id;
    var type = (o.type=='text')?'password':'text'; var oNew = document.createElement("input");
    oNew.setAttribute('id', id);
    oNew.setAttribute('value', o.value);
    oNew.mergeAttributes(o);
    oNew.setAttribute('type',type);
    o.replaceNode(oNew);
    }
    </script>
    <button onclick="a(x)">Switch TEXT<->HIDDEN</button>
    </BODY>
      

  5.   

    代码有误,正确如下<BODY>
    <input type=password id=x style="border:1 solid red">
    <script language="JavaScript">
    function a(o)
    {
    var id = o.id;
    var type = (o.type=='text')?'password':'text'; var oNew = document.createElement("input");
    oNew.setAttribute('id', id);
    oNew.setAttribute('value', o.value);
    oNew.mergeAttributes(o);
    oNew.setAttribute('type',type);
    o.replaceNode(oNew);
    }
    </script>
    <button onclick="a(x)">Switch TEXT<->HIDDEN</button>
    </BODY>
      

  6.   

    Type属性在Append到Body后是不能更改的,一般是新建一个Input,去掉先前的。(如果要多次转换的话)