因此,在图像悬停时,我希望该div中的段落消失。所以,我正在尝试这样做:
$("#One1 img").hover(function(){
var par = document.getElementById('One1 p');
par.style.display = "none";
},function(){});
但我收到错误'未捕获的TypeError:无法读取属性'样式'为null'
我知道div的getElementById只是var par = document.getElementById('One1');
但是如何才能获得该div中的段落?谢谢!
答案 0 :(得分:2)
document.getElementById()
只会获取带有所述ID的元素,它不会将任何css选择器作为其参数。
由于您使用的是jQuery,只需使用它提供的选择器
$("#One1 img").hover(function () {
$('#One1 p').hide();
}, function () {
$('#One1 p').show();
});
答案 1 :(得分:1)
而不是document.getElementById('One1 p');
put document.querySelector("#One1 p")
,因为document.getElementById
获取了元素的id,而选择器不像放置空格然后p
答案 2 :(得分:1)
您可以使用jQuery执行此操作:
$("#One1 img").hover(function(){
$("#One p").css("display", "none");
},function(){});
答案 3 :(得分:1)
你有JQuery,为什么你不使用它来做这个?
$('#One1 img').hover(function(){
// get the parent element (#One1) with .parent()
// and hide all p elements in it
$(this).parent().find('p').hide();
});
此解决方案更灵活,#One1也可以是使用此解决方案在页面上多次出现的类。