为什么这个改变css id的Javascript命令不起作用?
我试图为我的为什么这个改变css id的Javascript命令不起作用?,javascript,css,Javascript,Css,我试图为我的picinercss类设置背景图像,但它不起作用,所以我甚至尝试更改背景颜色: function changeBackground() { $('.PicInner').css('background', 'orange'); } 我尝试过在没有类选择器的的情况下使用它,但这也不起作用。什么可以覆盖这一点 我知道函数正在被调用,因为我插入了一个警报(“Hello!”)行,每次我刷新页面时它都会弹出,但是我的.piciner类的背景颜色没有改变。我已经在我的piciner类的
piciner
css类设置背景图像,但它不起作用,所以我甚至尝试更改背景颜色:
function changeBackground()
{
$('.PicInner').css('background', 'orange');
}
我尝试过在没有类选择器的
的情况下使用它,但这也不起作用。什么可以覆盖这一点
我知道函数正在被调用,因为我插入了一个警报(“Hello!”)代码>行,每次我刷新页面时它都会弹出,但是我的.piciner
类的背景颜色没有改变。我已经在我的piciner
类的F12编辑器中更改了背景,它工作得很好,只是javascript似乎没有为我改变任何东西
我哪里会出错
相关的html部分是
<script>
changeBackground();
function changeBackground()
{
alert("HELLO!");
('.PicInner').css('background', 'orange');
}
</script>
<link rel="stylesheet" type="text/css" href="~/css/CJBStyles.css">
<div class="wContainer">
<div class="cjb-bkg">
<div class="PicInner">
<h3>Bespoke Kitchens, bathrooms and fittings</h3>
<h3>Prestigious and high quality</h3>
</div>
</div>
</div>
如果使用jQuery选择器,则必须包含jQuery库。否则,您可以使用纯JavaScript(我建议您这样做)
此外,您还必须在事件上运行函数(我看到您已经编辑了问题,现在正在运行函数onload
):
函数changeBackground(){
var elm=document.querySelector('.PicInner');
elm.style.backgroundColor='橙色'
}
.PicInner{
背景:rgba(255,255,255,0.8);
填充:10px;
文本对齐:居中;
位置:相对位置;
}
定制厨房、浴室和配件
运行函数代码>如果使用jQuery选择器,则必须包含jQuery库。否则,您可以使用纯JavaScript(我建议您这样做)
此外,您还必须在事件上运行函数(我看到您已经编辑了问题,现在正在运行函数onload
):
函数changeBackground(){
var elm=document.querySelector('.PicInner');
elm.style.backgroundColor='橙色'
}
.PicInner{
背景:rgba(255,255,255,0.8);
填充:10px;
文本对齐:居中;
位置:相对位置;
}
定制厨房、浴室和配件
运行函数代码>以下是在“页面加载”事件中触发的函数:
函数changeBackground(){
var elm=document.querySelector('.PicInner');
elm.style.backgroundColor='橙色'
}
changeBackground()代码>
.PicInner{
背景:rgba(255,255,255,0.8);
填充:10px;
文本对齐:居中;
位置:相对位置;
}
定制厨房、浴室和配件
以下是在“页面加载”事件中触发的函数:
函数changeBackground(){
var elm=document.querySelector('.PicInner');
elm.style.backgroundColor='橙色'
}
changeBackground()代码>
.PicInner{
背景:rgba(255,255,255,0.8);
填充:10px;
文本对齐:居中;
位置:相对位置;
}
定制厨房、浴室和配件
好的,您的主要问题似乎源于对$('.piciner')
功能的混淆。此表达式不返回CSS类本身。相反,它搜索在该时间点具有此类的所有HTML元素-,并返回这些元素的集合(类似于数组,但带有额外的方法)。然后,当您执行.css('background','orange')
时,您实际上是在分别设置它们的style
属性。您不是在修改CSS类本身
考虑到这一点,代码没有做任何事情的原因变得显而易见——文档被加载,代码被按顺序执行。在执行此代码时,尚未加载带有class=“piciner”
的HTML元素。所以什么也没发生。好吧,你的主要问题似乎源于对$('.piciner')
的功能的混淆。此表达式不返回CSS类本身。相反,它搜索在该时间点具有此类的所有HTML元素-,并返回这些元素的集合(类似于数组,但带有额外的方法)。然后,当您执行.css('background','orange')
时,您实际上是在分别设置它们的style
属性。您不是在修改CSS类本身
考虑到这一点,代码没有做任何事情的原因变得显而易见——文档被加载,代码被按顺序执行。在执行此代码时,尚未加载带有class=“piciner”
的HTML元素。所以什么也没发生。在哪里/什么时候调用changeBackground
函数?您是否加载了jQuery?你能显示相关的html吗?它是picInner
还是picInner
?也许是打字错误,以防万一?如果没有,那么alert($('.piciner').length)
会说什么?因为您使用的是jQuery代码,并且没有任何vanila javascript?是的,这是jQuery而不是普通的javascript,在添加jQuery后,您可能会有一个css层次结构,而不仅仅是changeBackground()要调用它,请使用$(function(){changeBackground();})因为在加载DOM后需要调用函数。否则,调用函数时元素还不存在,因此什么也不做。在何处/何时调用changeBackground
函数?您是否加载了jQuery?你能显示相关的html吗?它是picInner
还是picInner
?也许是打字错误,以防万一?如果没有,那么alert($('.piciner').length)
会说什么?因为您使用的是jQuery代码,并且没有任何vanila javascript?是的,这是jQuery而不是普通的javascript,在添加jQuery后,您可能会有一个css层次结构,而不仅仅是changeBackground()要调用它,请使用$(function(){changeBackground();})代码>因为函数
.PicInner{
background: rgba(255,255,255,0.8);
padding: 10px;
text-align:center;
position: relative;
}