<form id="form1">
  <input id="txt_1" />
</form>var txt_1=document.getElementById("txt_1");
    f_id=txt_1.parentElement.id;

解决方案 »

  1.   

    <body id="www.never-online.net">
    <table border="0" cellpadding="0" cellspacing="0" width="100%" >
      <tr>
        <td><form name="f1"><input id="i1"/></form></td>
      </tr>
      <tr>
        <td><form name="f2"><select id="i2"></select></form></td>
      </tr>
      <tr>
        <td><form name="f3"><div><input id="i3"/></div></form></td>
      </tr>
    </table>
    <script type="text/javascript">
    //<![CDATA[
        document.getFormByElement = function() {
        // http://blog.never-online.net
          var a = arguments; var cnt=0;
          var $ = document.getElementById;
          var queryForm = function(e) {
            while (cnt!=1000 && e.tagName!="FORM") {
              ++cnt; e = e.parentNode;
            }; cnt = 0; return (e.tagName=="FORM"?e:null);
          }; if (a.length==1) {
            var e = $(a[0]);
            return queryForm(e);
          }; var retval = [];
          for (var i=0; i<a.length; i++) {
            retval.push(queryForm($(a[i])));
          }
          return retval;
        }
        alert(document.getFormByElement("i3").name)
        alert(document.getFormByElement("i3","i1","i2"))
    //]]>
    </script>
      </body>
      

  2.   

    element.form
    不过只能应用于表单提交的控件:input,select,textarea...
      

  3.   

    一般的表单控件可以用 form 属性,对于页面标签,有需要用循环得到各个控件的parentNode属性,判断是否undefined或者是其它元素(除表单外)