html 的body里面有任意N个<form></form>表单标签,
现用javascript或jquery(最好用jquery)进行查找各个form节点里面的元素,如果某个form节点内的某个任意类型元素的ID="abc",
然后就返回这个form对象,要怎么写,请大家会的写下测试案例,我尝试了很久,都没法获取
====================================================================
<html>
<head>
<title>寻找Form</title>
<!--这里引用juqery 1.4.js-->
</head>
<body>
<form id="f1" action="a.aspx">
.......
</form>
<form id="f2" action="b.aspx">
<img id="abc" />
</form>
 
<script lanague="javascript">
 $(function(){
   var f;
   $(this).find("form").each(function(){
     if($(this).find("[id=abc]")){
        f=$(this);
        return false;
     }
  });
  
  if(f){
     alert(f.action); //这里会弹出undefine ,不知道上面是怎么写的,各位帮看看
  }
});
</script>
 </body>
</html>

解决方案 »

  1.   


      var result=$("#abc").parents('form').attr('action')
      alert(result);
      

  2.   

    原因很简单
    f是jQuery对象,当然不存在action方法,只能用attr("action")方法
    如果f.get(0).action你就能看到了
      

  3.   

    $(document).ready(function(){$("form:has(#abc)").each(function(){alert($(this).attr("action"))})})
      

  4.   

    好NB的各位,看来我对jquery不熟悉
      

  5.   

    var jqForm = $('form:has([id=abc])')
    if(jqForm.length > 0)
        alert(jqForm[0].action)
      

  6.   

    问题:查找各个form节点里面的元素,如果某个form节点内的某个任意类型元素的ID="abc",则返回这个form对象
    分析:form元素有多个,包含id="abc"元素的form也可能有多个。
    步骤:①获取所有的form元素
          ②查找出form内包含有id="abc"的from元素,并获取form元素的action属性代码:
    $(document).ready(function(){
       $("form").has("#abc").each(function(){
           alert($(this).attr("action"));
       });
    });注意: .has()与:has()其获取的结果是一样的,.has()是在jQuery1.4及更高版本才有的。
      

  7.   

    只谈你的错误<script lanague="javascript">
     $(function(){
       var f;
       $(this).find("form").each(function(){
         if($(this).find("[id=abc]")){
            f=$(this);//f为一个jQuery对象
            return false;
         }
      });
      
      if(f){
         alert(f.action); 
         //f这个时候是jQuery对象不是dom对象,所以没有action方法,怎么获得action不用我讲你也知道的
      }
    });
    </script>