jQuery $ (this) с именем класса

#jquery

#jquery

Вопрос:

У меня здесь есть jsfiddle: http://jsfiddle.net/ecWT5 /

Это 3 разных цветных блока.

Я хочу показать цвет блока на блоке.

Все блоки имеют имя класса.

Поэтому, если я получаю цвет, используя имя класса, он показывает один и тот же цвет во всех блоках

Можно ли использовать что-то вроде блока $ (this) с именем класса, чтобы получить цвет этого блока.

     <!DOCTYPE html>
    <html lang="en">

        <head>  
            <meta charset="UTF-8">  
            <!--jQuery-->
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>


            <style type="text/css">
                *{
                    margin: 0;
                    padding: 0;
                    font-family: sans-serif;
                }

                .wrap{
                    margin: 50px;
                }

                .my_Box{
                    color: white;
                    text-align: center;
                    width: 200px;
                    height: 200px;
                    margin: 0 20px 0 0;
                    float: left;
                }

                .at-blue-lighter{
                    background-color: #70afe4;
                }

                .at-blue-light{
                    background-color: #4597dc;
                }

                .at-blue{
                    background-color: #267ec8;
                }
            </style>



            <title>Title of the document</title>
        </head>

    <body>

        <div class="wrap">
                <div class="my_Box at-blue-lighter" ><span></span></div>
                <div class="my_Box at-blue-light" ><span></span></div>
                <div class="my_Box at-blue" ><span></span></div>
            </div>

        <script>

            $(function(){

                var color = $('.my_Box').css('backgroundColor'); 

                $('.my_Box span').html(color);
            })

        </script>

    </body>

    </html>
  

Комментарии:

1. Что вы уже пробовали?

Ответ №1:

Попробуйте использовать функцию приемника .text() ,

 $('.my_Box').text(function(){
  return $(this).css('backgroundColor'); 
});
  

ДЕМОНСТРАЦИЯ

Примечание: использование .html() здесь кажется неуместным, поэтому вместо этого используйте .text()


В вашем коде,

 $('.my_Box').css('backgroundColor')
  

Вы вызываете .css() над a collection элементов, поскольку он вернет только значение свойства css первого элемента в этой коллекции.

  $('.my_Box span').html(color);
  

В результате первого шага каждому элементу с селектором .my_Box span было присвоено одинаковое значение.