Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript设置元素背景色_Javascript_Jquery_Colors_Onclick - Fatal编程技术网

javascript设置元素背景色

javascript设置元素背景色,javascript,jquery,colors,onclick,Javascript,Jquery,Colors,Onclick,我有一个小小的javascript函数,当单击具有onclick函数的元素时,它会执行一些操作 我的问题是: 我希望在这个函数中,为具有这个函数onclick的html元素设置字体颜色。但我没有成功。我的代码: <script type="text/javascript"> function selecteazaElement(id,stock){ document.addtobasket.idOfSelectedItem.value=id;

我有一个小小的javascript函数,当单击具有onclick函数的元素时,它会执行一些操作

我的问题是: 我希望在这个函数中,为具有这个函数onclick的html元素设置字体颜色。但我没有成功。我的代码:

<script type="text/javascript">
    function selecteazaElement(id,stock){
        document.addtobasket.idOfSelectedItem.value=id;
        var number23=document.addtobasket.number;
        number23.options.length=0;
        if (stock>=6) stock=6;

        for (i=1;i<=stock;i++){
            //alert ('id: '+id+'; stock: '+stock);
            number23.options[number23.options.length]=new Option(i, i);
        }
    }
</script>
你知道为什么吗


谢谢

调用函数时的“作用域”是单击的元素,因此您应该能够执行以下操作:

function selecteazaElement(id,stock){

 document.addtobasket.idOfSelectedItem.value=id;
 var number23 = document.addtobasket.number;
 number23.options.length=0;
 if (stock>=6){
   stock=6;
 }
 for (var i=1;i<=stock;i++){
   //alert ('id: '+id+'; stock: '+stock);
   number23.options[number23.options.length]=new Option(i, i);
 }

 // Alter 'this', which is the clicked element in this case
 this.style.backgroundColor = '#000';
}
function selecteazaElement(id、库存){
document.addtobasket.idOfSelectedItem.value=id;
var number23=document.addtobasket.number;
number23.options.length=0;
如果(库存>=6){
股票=6;
}
对于(var i=1;i
让你的css像这样:

<style type='text/css'>
.altBackground {
        background-color:#EE178C;
     /* color: your color ; 
        foo: bar */
}
</style>

A.背景{
背景色:#EE178C;
/*颜色:你的颜色;
福:酒吧*/
}

将jQuery click事件附加到“#product_types a”,该事件将从与该选择器匹配的所有元素的父级中删除一个类;然后,将包含您想要的样式的类添加回刚刚单击的元素的父级。这有点繁琐,可以提高效率,但效果很好

我在JSFIDLE中做了一个例子:

我建议

$(document).ready(function() {
    $('.product_types > li').click(function() {
      $('.product_types > li').css('background-color','#FFFFFF');
      $(this).css('background-color','#EE178C');
    });
});

您的元素可能具有以下代码:

试试这个:

//ON PAGE LOAD
$(document).ready(function() {

    //SELECT ALL OF THE LIST ITEMS
    $('.product_types > li').each(function () {

        //FOR EACH OF THE LIST ITEMS BIND A CLICK EVENT
        $(this).click(function() {

            //GRAB THE CURRENT LIST ITEM, CHANGE IT BG, RESET THE REST
            $(this)
            .css('background-color','#EE178C')
            .siblings()
            .css('background-color','transparent');
        });
    });
});
如果我是正确的,那么问题是click事件绑定到所有列表项(li)。单击一个列表项时,会对所有列表项触发事件

我在代码中添加了一个简单的.each(),它将循环遍历每个列表项,并分别为每个列表项绑定一个事件

干杯


-罗伯特·赫斯特(Robert Hurst)

渲染后的效果如何?如果id和股票不是数字,则需要报价。此外,如果您希望链接更改背景颜色,请更改parentNode.className或parentNode.style.backgroundColor,而不是更改parentNode.style.backgroundColor。如果我们执行某项操作,则传递的参数值是多少警报(id);警报(股票)也不是这样。我已经编辑了我的问题,以防你能给我一些线索。谢谢!尝试“backgroundColor”而不是“backgroundColor”。连接CSS属性的Javascript语法在camelCase中表示。是的-我在发布之前读到过,我对camelCase进行了评论,因为我觉得使用它会更好,因为它可能会节省您的时间我注意到jquery理解这两种语法。
<style type='text/css'>
.altBackground {
        background-color:#EE178C;
     /* color: your color ; 
        foo: bar */
}
</style>
$(document).ready(function() {
    $('.product_types > li').click(function() {
      $('.product_types > li').css('background-color','#FFFFFF');
      $(this).css('background-color','#EE178C');
    });
});
function selecteazaElement(element)
{
    element.style.foregroundColor="#SOMECOLOR";
}
function Reset()
{
    for (var i = 1; i <= N; i = i + 1)
    {
        document.getElementById('product_types'+i).style.backgroundColor="#RESETCOLOR";
    }
}
function selecteazaElement(element)
{
    Reset();
    element.style.backgroundColor="#SOMECOLOR";
}
//ON PAGE LOAD
$(document).ready(function() {

    //SELECT ALL OF THE LIST ITEMS
    $('.product_types > li').each(function () {

        //FOR EACH OF THE LIST ITEMS BIND A CLICK EVENT
        $(this).click(function() {

            //GRAB THE CURRENT LIST ITEM, CHANGE IT BG, RESET THE REST
            $(this)
            .css('background-color','#EE178C')
            .siblings()
            .css('background-color','transparent');
        });
    });
});