使用getElementById设置div段的样式

时间:2014-10-02 16:42:36

标签: javascript jquery html css

因此,在图像悬停时,我希望该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中的段落?谢谢!

4 个答案:

答案 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也可以是使用此解决方案在页面上多次出现的类。