如何使用jQuery选择兄弟元素?

97

你能帮我解决这个 jQuery 选择器的问题吗?

$(".auctiondiv .auctiondivleftcontainer .countdown").each(function () {
    var newValue = parseInt($(this).text(), 10) - 1;
    $(this).text(newValue);

    if (newValue == 0) {
        $(this).parent().fadeOut();
        chat.verify($(this).parent().parent().attr('id'));
    }
});

基本上,我想选择与每个循环中的 .countdown 属于同一父元素的具有 .bidbutton 类的元素:

<div class="auctiondivleftcontainer">
    <p class="countdown">0</p>
    <button class="btn primary bidbutton">Lance</button>                            
</div>  

然后将这个应用到那个按钮上:

$(button here).addClass("disabled");
$(button here).attr("disabled", "");
11个回答

169

使用 jQuery .siblings() 方法选择相匹配的兄弟元素。

$(this).siblings('.bidbutton');

5
Siblings() 返回与选择器匹配的所有元素的数组。 - Luke
3
如何获取所有兄弟节点但不包括当前节点? - melvin

7
$(this).siblings(".bidbutton")

6
$("h2").siblings().css({"color": "blue"});

4
$("selector").nextAll(); 
$("selector").prev(); 

你可以使用Jquery选择器来查找元素。
$("h2").siblings('table').find('tr'); 

4
you can use 
$(this).siblings(".bidbutton").addClass("disabled");
$(this).siblings(".bidbutton").attr("disabled","");

2
你可以使用jQuery选择兄弟元素。"最初的回答"。
 <script type="text/javascript">
    $(document).ready(function(){
        $("selector").siblings().addClass("classname");
    });
 </script>

查看演示


1
如果你想选择一个特定的兄弟元素:
var $sibling = $(this).siblings('.bidbutton')[index];

其中“index”是父容器中特定兄弟节点的索引。

只有在事先知道索引时才有用。 - TylerH

0

如果我理解正确,您已经在循环中(each),因此您总是要选择每个循环运行期间的那个一个兄弟按钮?由于 siblings() 返回一个数组,这将是正确的方法:

$(this).siblings('.bidbutton')[0]

你可以在一行代码中同时实现你想要的两件事情:

$(this).siblings('.bidbutton')[0].addClass("disabled").attr("disabled", "");

0
如果您需要选择一个具有名称而非类的兄弟节点,可以使用以下方法。
var $sibling = $(this).siblings('input[name=bidbutton]');

0

尝试 -

   $(this).siblings(".bidbutton").addClass("disabled").attr("disabled", "");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接