$('#btnCquery').click(function () {
   if ($("#table").css("display") == "block") {
    $("#table > div").each(function () {
                id += $(this).val() + "&";
                idlength = id.length;
            });
         }
     }
我这$(this).val()取到的值是:input#btnCquery
那我想取到$("#table")下面的所有div的值该怎么办呢?还有就是谁能告诉我为什么$(this)会取到这个值呢?

解决方案 »

  1.   

    div没有值,建议用text() or html();
      

  2.   

    this是谁调用就是谁 你的button的click事件调用的就是button的value
      

  3.   

    $("#table > div")中的">"符号是指id为table的元素的直接子元素。
    比如下面的代码:
    <div id="div1">
        <div id="div2">
            <div id="div3"></div>
        </div>
    </div><script type='text/javascript'>
        var list1 = $("#div1 > div");// 结果里面只包含div2而不包括div3
        var list2 = $("#div2 > div"); // 结果里面包含div2和div3
    </script>
    如果你那个#table的是table标签的话,应该获取不到,因为他的直接子元素是tr标签。val()方法是获取元素的value值,而div不存在value值,所以是不能获取的。
    要获取div中的内容用html()方法。
    把这句id += $(this).val() + "&";
    换成id += $(this).html() + "&";试试
      

  4.   

    我前台是这样的,敢问怎么遍历呢?换成td,tr可以吗?<div id="table" style="text-align: left; padding: 2px 0pt 5px 2px; display: block;" colspan="4">
    <div id="CoreVADBegin" value="CoreVADBegin">
    <hr id="CoreVADBegin" style="width:100%;">
    <div id="CoreVADProcess" value="CoreVADProcess">
    <hr id="CoreVADProcess" style="width:100%;">
    </div>
      

  5.   

    写错了,应该是这样
    <script type='text/javascript'>
        var list1 = $("#div1 > div");// 结果里面只包含div2而不包括div3
        var list2 = $("#div2 div"); // 结果里面包含div2和div3
    </script>
      

  6.   


    可以这样
    $(this).attr("value");把val()方法换成attr()方法
      

  7.   

    id += $(this).html() + "&";这个把整个页面都取到了
    不行哇
      

  8.   

    这个方法好,但是$(this)取值还是有问题,还是input#btnCquery 
      

  9.   

    问题解决了$(this).attr("value");
    正解