【问题标题】:Issue with jQuery selectorjQuery 选择器的问题
【发布时间】:2011-08-20 01:23:14
【问题描述】:
    <div class="full_width_last">

        <div class="sub_div1" style="display:none">
            <h2>Join</h2>
            <p>Click here to sign up.</p>
            <p>ID: 48</p>
        </div>

        <h4>Boston</h4>
        <p>ioiuy</p>
        <a href="#" class="join_button">Join</a>

    </div>

    jQuery('.join_button').bind('click', function(){



        console.log(jQuery(this));
        console.log(jQuery(this).parent());
        console.log(jQuery('.sub_div1', jQuery(this).parent()));
        return false;
    }

我在使用 jQuery 选择器时遇到问题:jQuery('.sub_div1', jQuery(this).parent())

由于某种原因,库没有找到我正在搜索的 div。

两者:

console.log(jQuery(this));
            console.log(jQuery(this).parent());

按预期工作。任何人都知道为什么我无法获得对 .sub_div1 的引用吗?

编辑 1: 尝试缓存父级,但这不起作用:

console.log(jQuery(this));
        //console.log(jQuery(this).parent());
        var p = jQuery(this).parent();
        console.log(jQuery('.sub_div1', p));

编辑 2 jQuery(this).parent().children(".sub_div1") 也没有用

这段代码产生了这个结果:

console.log(jQuery(this));
console.log(jQuery(this).parent());
console.log(jQuery(this).parent().children(".sub_div1"));

Query(a.join_button #✉)
jQuery(div.full_width_last)
jQuery()

【问题讨论】:

  • 你用的是什么版本的jQuery?
  • 也可以尝试缓存父类,看看是否有效:var p = jQuery(this).parent(); jQuery('.sub_div1', p); BTW,你知道 jQuery 在查找类时效率最低,最好列出 element.className(例如 div.sub_div1)而不仅仅是班级本身。这样 jQuery 就可以利用原生函数。
  • @BoltClock,1.6.2 - 由ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js提供服务
  • @Casey Flynn:如果你改用.find().siblings() 会怎样?它们有用吗?
  • @vol7ron,我尝试了你的想法,但不幸的是它没有奏效。

标签: javascript jquery dom jquery-selectors


【解决方案1】:

试试这个,jQuery(this).parent().children(".sub_div1")

【讨论】:

    【解决方案2】:
    (function($){    
        $('.join_button').bind('click', function(e){
            e.preventDefault();
            console.log($(this).siblings('.sub_div1'));
        });
    })(jQuery);
    

    【讨论】:

      【解决方案3】:

      试试jQuery(this).parent().eq(".sub_div1")

      【讨论】:

        【解决方案4】:

        很好奇你为什么要得到父母然后孩子,为什么不只是jQuery(this).siblings('.sub_div1')

        但是,根据您的评论,您没有提供 HTML 的全部细节(或至少不够)。

        【讨论】:

          猜你喜欢
          • 2010-10-09
          • 2011-04-04
          • 2011-10-31
          • 2010-12-01
          • 2010-11-25
          相关资源
          最近更新 更多