我有一个div
类别相同的列表。每个div包含其他div,.header
,.body
,.footer
。当我将鼠标悬停在一个div内的一个元素上时,例如.header
,我需要在同一div内的另一个.footer
元素上添加/删除一个类。
问题是,当我将鼠标悬停在一个.header
上时,我正在将类添加到所有其他div内的所有.footer
元素中,但是我只需要将新类添加到{当前格。
.footer
$(document).ready(function() {
$('.header').hover(function() {
$('.footer').addClass('active');
}, function() {
$('.footer').removeClass('active');
});
});
答案 0 :(得分:3)
您可以在CSS中使用driver.get("http://automationpractice.com/index.php?id_product=4&controller=product");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);
driver.findElement(By.xpath(".//*[text()='Add to cart']")).click();
WebElement elementButton = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//a[contains(@title,'Proceed to checkout')]")));
elementButton.click();
伪函数和常规的同级组合器选择器:hover
~
.list_item:hover .header:hover ~ .footer {
background: red;
}
否则,如果您不能依靠<div class="list">
<div class="list_item">
<div class="header">Hover me</div>
<div class="body">B</div>
<div class="footer">F</div>
</div>
<div class="list_item">
<div class="header">Hover me</div>
<div class="body">B</div>
<div class="footer">F</div>
</div>
<div class="list_item">
<div class="header">Hover me</div>
<div class="body">B</div>
<div class="footer">F</div>
</div>
</div>
作为下一个兄弟姐妹,请使用jQuery
.footer
jQuery(function($) {
$('.header').hover(function() {
$(this).closest('.list_item').find('.footer').toggleClass('active');
});
});
.active {
background: red;
}
答案 1 :(得分:0)
您应该相对于this
(当前悬停的标头)执行此操作,并且如果这是分组中的唯一页脚,则可以使用nextAll
:
$('.header').hover(function() {
$(this).nextAll('.footer').addClass('active');
},
function() {
$(this).nextAll('.footer').removeClass('active');
});
.active {
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="list">
<div class="list_item">
<div class="header"> header </div>
<div class="body"> body </div>
<div class="footer"> footer </div>
</div>
<div class="list_item">
<div class="header"> header </div>
<div class="body"> body </div>
<div class="footer"> footer </div>
</div>
<div class="list_item">
<div class="header"> header </div>
<div class="body"> body </div>
<div class="footer"> footer </div>
</div>
</div>
答案 2 :(得分:0)
是的,下面的代码段可以尝试,我已经测试过了。
$(document).ready(function() {
$('.header').hover(function(){
$(this).siblings(".footer").addClass('active');
},
function(){
$(this).siblings(".footer").removeClass('active');
});
});
答案 3 :(得分:-2)
您需要为所有div添加不同的ID属性,获取$('#footer3')
并进行更改