How do I select a sibling element using jQuery?
Can you help me with this jQuery selector?
$(".auctiondiv .auctiondivleftcontainer .countdown").each(function () {
var newValue = parseInt($(this).text(), 10) - 1;
$(this).text(newValue);
if (newValue == 0) {
$(this).parent().fadeOut();
chat开发者_如何学JAVA.verify($(this).parent().parent().attr('id'));
}
});
Basically, I want to select the element with .bidbutton class that belongs in the same parent as the .countdown in the each loop:
<div class="auctiondivleftcontainer">
<p class="countdown">0</p>
<button class="btn primary bidbutton">Lance</button>
</div>
And then apply this to that button:
$(button here).addClass("disabled");
$(button here).attr("disabled", "");
Use jQuery .siblings()
to select the matching sibling.
$(this).siblings('.bidbutton');
$(this).siblings(".bidbutton")
$("h2").siblings().css({"color": "blue"});
you can use
$(this).siblings(".bidbutton").addClass("disabled");
$(this).siblings(".bidbutton").attr("disabled","");
$("selector").nextAll();
$("selector").prev();
you can also find an element using Jquery selector
$("h2").siblings('table').find('tr');
you can select a sibling element using jQuery
<script type="text/javascript">
$(document).ready(function(){
$("selector").siblings().addClass("classname");
});
</script>
Demo here
If you want to select a specific sibling:
var $sibling = $(this).siblings('.bidbutton')[index];
where 'index' is the index of the specific sibling within the parent container.
Since $(this)
refers to .countdown
you can use $(this).next()
or $(this).next('button')
more specifically.
Try -
$(this).siblings(".bidbutton").addClass("disabled").attr("disabled", "");
also if you need to select a sibling with a name rather than the class, you could use the following
var $sibling = $(this).siblings('input[name=bidbutton]');
If I understood that correctly you're already in a loop (each) so you would always want to select that one sibling button inside each loop runthrough? Since siblings() returns an array, this would be the way to go:
$(this).siblings('.bidbutton')[0]
You can apply both things you wanted in a single line doing this:
$(this).siblings('.bidbutton')[0].addClass("disabled").attr("disabled", "");
精彩评论