+ -
当前位置:首页 → 问答吧 → $('div',$(this).parents('div:first'))//这一句不懂

$('div',$(this).parents('div:first'))//这一句不懂

时间:2009-06-15

来源:互联网

    <script type="text/javascript">
      $(function(){
        $('fieldset div div').hide();//隐藏子菜单
        $(':checkbox').click(function(){//为复选框添加click事件
          var checked = this.checked;//复选框状态
          $('div',$(this).parents('div:first'))//这一句不懂
            .css('display',checked ? 'block':'none');
          $('input[type=text]',$(this).parents('div:first'))
            .attr('disabled',!checked)
            .css('color',checked ? 'black' : '#f0f0f0')
            .val(1)
            .change()
            .each(function(){ if (checked) this.focus(); });
        });
        $('span[price] input[type=text]').change(function(){
          $('~ span:first',this).text(
            $(this).val() *
            $(this).parents("span[price]:first").attr('price')
          );
        });
        $('span[price] input[type=text]').change();
      });
    </script>

  <body>
    <fieldset>

      <div>

        <label>
          <input type="checkbox" name="appetizers" value="imperial"/> Fried Imperial rolls (2)
        </label>
        <span price="3">
          <input type="text" name="imperial.quantity" disabled="disabled" value="1"/>$<span></span>
        </span>

        <div>
          <label>
            <input type="radio" name="imperial.option" value="pork" checked="checked"/>Pork
          </label>
          <label>
            <input type="radio" name="imperial.option" value="vegetarian"/>Vegetarian
          </label>
        </div>

      </div>
  </body>

作者: isjquery   发布时间: 2009-06-15

$(':checkbox').click

这个里面的this就是触发事件的checkbox
$(this).parents('div:first')就是这个checkbox的第一个div父元素
$('div',$(this).parents('div:first'))就是这个div父元素中的所有div子元素

作者: keakon   发布时间: 2009-06-15

引用
引用第1楼keakon于2009-06-15 10:14发表的  :
$(this).parents('div:first')就是这个checkbox的第一个div父元素


<div id='div1'>
<div id='div2'><p></p></div>
<div id='div3' class='a'><p></p></div>
<div id='div4'><p></p></div>
</div>

$('p').parent()取到的是div2,div3,div4
$('p').parent('.a')取到的是div3
$('p').parent().parent()取到的是div1,这点比较奇特;不过Jquery对象本身的特点决定了这是可行的。
$('p').parents()取到的是div1,div2,div3,div4
$('p').parents('.a')取到的是div3

<fieldset>
      <legend>Appetizers</legend>
      <div>  <!--你说的第一个父元素是指这个这个元素?-->

$('div',$(this).parents('div:first'))//这句是怎么选到父元素下的所有子div?
我对$('...','...');这个写法不是很理解,能否举个简单的例子 谢谢~

作者: isjquery   发布时间: 2009-06-15

$(a, b)
相当于
$(b).find(a)

作者: keakon   发布时间: 2009-06-15

哈哈,这一下终于理解了! $('div',$(this).parents('div:first'))
                                             第一个参数是一个选择器 选择第二个参数中集合中的 一个元素 ,
                                              第二个参数是要选择大范围的集合

作者: charmred   发布时间: 2009-08-19

相关阅读 更多