如何选择元素的第n个子元素
How do I select the nth child of an element?
我需要根据悬停在上面的图片来更改三个堆叠图片的显示样式。显然,使用CSS :hover
无法上到父图片和下一个图片。
我试着使用我发现的部分代码来让它工作。JavaScript对第一个孩子有效,但我无法让它显示第二个孩子。
HTML:
<div class="c-tab is-active">
<div class="c-tab__content">
<div class="row" id="mapviewer">
<div class="col-xs-4 nopadding" style="" id="d_d2">
<div class="dd21 viewer1" id="test111">
<img class="map" src="images/d/dd2.png" >
<img class="map" src="images/hover1/mockuptopage_01.png" >
<img class="map" src="images/hover2/mockuptopage_01.png" >
</div>
</div>
<div class="col-xs-4 nopadding" style="" id="n_d2">
<div class= "nd21 viewer2" id="test222">
<img class="map" src="images/n/dd2.png" >
<img class="map" src="images/hover2/mockuptopage_03.png" >
<img class="map" src="images/hover3/mockuptopage_01.png" >
</div>
</div>
<div class="col-xs-4 nopadding" style="" id="s_d2">
<div class="sd21 viewer3" id="test333">
<img class="map" src="images/s/dd2.png">
<img class="map" src="images/hover2/mockuptopage_03.png">
<img class="map" src="images/hover3/mockuptopage_01.png" >
</div>
</div>
</div>
</div>
JS:
$('#test111').on('mouseover', function() {
(document).getElementById("test222 img:nth-child(2)").style.display = "inline-block";
}).on('mouseout', function() {
(document).getElementById("test222:nth-child(2)").style.display = "none";
})
您应该使用jQuery选择器,:nth-child()Selector
$('#test111').on('mouseover', function() {
$("#test222 img:nth-child(2)").css('display', "inline-block");
}).on('mouseout', function() {
$("#test222 img:nth-child(2)").css('display', "none");
})
$('#test111').on('mouseover', function() {
$("#test222 img:nth-child(2)").css('display', "inline-block");
}).on('mouseout', function() {
$("#test222 img:nth-child(2)").css('display', "none");
})
或不带jquery:
$('#test111').on('mouseover', function(){
document.querySelector("#test222 img:nth-child(2)").style.display = "inline-block";
}).on('mouseout', function(){
document.querySelector("#test222 img:nth-child(2)").style.display = "none";
})
$('#test111').on('mouseover', function() {
$("#test222")[1].css('display', "inline-block");
}).on('mouseout', function() {
$("#test222")[1].css('display', "none");
})
这应该工作
相关文章:
- 检测页面上某个元素中选择(突出显示)或单击的内容
- 使用Jquery在相同类型的元素中选择元素
- 在类JavaScript选择的另一个元素中选择一个标记元素
- 循环遍历元素jquery选择器
- 当“不相关”的 html 选择元素没有选择任何选项时,如何退出 jQuery 事件
- 使用本机 Javascript 从 DOM 元素获取选择器字符串
- 禁用“基于同一行上的另一个元素进行选择”
- 如何在其他几个元素中选择锚点
- 何时在javascript中使用css元素/类选择器
- 如何使用Java从SeleniumWebDriver中的不可见下拉元素中选择选项
- 从下拉元素中选择选项不可见
- 使用jQuery使动态元素可选择
- CKEditor:以小部件作为第一个元素,选择所有在Chrome中不工作的
- 可以使用jQuery在另一个元素之前选择一个元素
- jquery选择每个元素'的上一个元素与选择器匹配
- 从动态追加的子元素中选择一个元素
- 给定一个 bySelector 我如何获取此元素子元素的选择器
- 从角度“ng-model”选择元素中选择第一个选项,带有一个按钮
- IE9在视图外元素上选择AllChildren
- 将元素从“选择列表”解析为 $_POST 以写入数据库