ฉันจะแยก $ (สิ่งนี้) ออกจากตัวเลือก jQuery ได้อย่างไร


203

ฉันมีสิ่งนี้:

<div class="content">
    <a href="#">A</a>
</div>
<div class="content">
    <a href="#">B</a>
</div>
<div class="content">
    <a href="#">C</a>
</div>

เมื่อคลิกที่ลิงค์ใดลิงค์หนึ่งเหล่านี้ฉันต้องการที่จะใช้งานฟังก์ชัน. leather () บนลิงก์ที่ไม่ได้คลิก ฉันเข้าใจว่า jQuery มีตัวเลือก: ไม่ใช่ตัวเลือก แต่ฉันไม่สามารถหาวิธีใช้ในกรณีนี้ได้เนื่องจากจำเป็นต้องเลือกลิงก์ที่ใช้$(".content a")

ฉันต้องการทำบางสิ่งเช่น

$(".content a").click(function()
{
    $(".content a:not(this)").hide("slow");
});

แต่ฉันไม่สามารถหาวิธีใช้: ไม่เลือกได้อย่างถูกต้องในกรณีนี้


3
ลอง!$(this)รหัสง่ายขึ้น
Ari

คำตอบ:


390

ลองใช้not() วิธีการแทนการเลือก:not()

$(".content a").click(function() {
    $(".content a").not(this).hide("slow");
});

เหตุใดฉันจึงไม่สามารถใช้งานได้ ... $ ("# menu-holder #first_level li"). not (this) .addClass ("returnToParent");
marck

4
@marck โดยไม่มีบริบทฉันไม่รู้ สร้างคำถามใหม่และฉันอาจช่วยได้
Dan Herbert

2
นี่เป็นวิธีแก้ปัญหาที่แย่มาก (ประสิทธิภาพ - ฉลาด) ไม่มีเหตุผลที่แท้จริง$(".content a")ในการclickโทรกลับ ... ในทุก ๆ คลิก ...
Ronen Cypis


9

คุณยังสามารถใช้.siblings()วิธีjQuery :

HTML

<div class="content">
  <a href="#">A</a>
  <a href="#">B</a>
  <a href="#">C</a>
</div>

จาวาสคริ

$(".content").on('click', 'a', function(e) {
  e.preventDefault();
  $(this).siblings().hide('slow');
});

สาธิตการทำงาน: http://jsfiddle.net/wTm5f/


5

คุณควรใช้วิธี "พี่น้อง ()" และป้องกันไม่ให้เรียกใช้ ".content a" ตัวเลือกซ้ำแล้วซ้ำอีกเพียงเพื่อใช้เอฟเฟกต์นั้น:

HTML

<div class="content">
    <a href="#">A</a>
</div>
<div class="content">
    <a href="#">B</a>
</div>
<div class="content">
    <a href="#">C</a>
</div>

CSS

.content {
    background-color:red;
    margin:10px;
}
.content.other {
    background-color:yellow;
}

จาวาสคริ

$(".content a").click(function() {
  var current = $(this).parent();
  current.removeClass('other')
    .siblings()
    .addClass('other');
});

ดูที่นี่: http://jsfiddle.net/3bzLV/1/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.