在jquery中遇到此方法的问题

时间:2013-08-12 16:25:17

标签: javascript jquery

也许我太累但我真的不明白为什么这个东西不起作用?我在这里有jsbin:http://jsbin.com/ariret/19/edit

谢谢你的时间!

<section class="">
    <p>Hello there, this is your flight info.</p>
    <div class="confirmation">
        <h3>Hawaiian Vacation</h3>
        <button class="btn">Flight details</button>
        <div class="ticket">
            <a href="#" class="view-boarding-pass">View Boarding Pass</a>
            <img src="http://placekitten.com/g/100/100" alt=""/>
        </div>
    </div>
</section>

jquery的:

$('.confirmation').on('click', 'button', function() {
    console.log('works');
    $(this).find('.ticket').hide(); //why is  this not working?
});

4 个答案:

答案 0 :(得分:1)

find()用于查找子元素。问题是.ticketbutton的兄弟,因此您需要使用next()

$('.confirmation').on('click', 'button', function() {
    $(this).next('.ticket').hide();
});

答案 1 :(得分:0)

处理程序内的

this指向按钮,ticket不是按钮的下降,但它是下一个兄弟,所以你需要使用.next()

应该是

$('.confirmation').on('click', 'button', function(){
console.log('works');
           $(this).next('.ticket').hide(); //why is  this not working?

        });

答案 2 :(得分:0)

您可以同时使用它们:

 $(this).parent().find('.ticket').hide();
 $(this).next('.ticket').hide(); //why is  this not working?

您只能找到当前节点的子节点。

答案 3 :(得分:0)

试试这个。我猜这就是你想要的

$('.btn').click(function(){

  $('.ticket').slideToggle();

  });

和更新的jsbin Demo

希望这会有所帮助。谢谢。