Невозможно присвоить тексту Gridview другой цвет с помощью Jquery - PullRequest
0 голосов
/ 29 мая 2020

У меня есть этот Jquery, который меняет фон строки, когда установлен флажок:

 $(document).ready(function () {

            $("[id*=CheckBox1]").live('click', function (event) {



                if (this.checked == true) {
                    $(this).closest('tr').css("background-color", "#6c42a6");

                }
                if (this.checked == false) {
                    $(this).closest('tr').css("background-color", "#ffffff");
                }
            });

            $('#GridView1 tr').live('click', function (event) {
                if ($(event.target).is(':checkbox')) {
                    return;
                }

                var chkboxSelection = $(this).find('input:checkbox')[0].checked;
                if (chkboxSelection == true) {
                    $(this).closest('tr').css("background-color", "white");
                    $(this).find('input:checkbox')[0].checked = false;  

                }
                else if (chkboxSelection == false) {
                    $(this).closest('tr').css("background-color", "#6c42a6");
                    $(this).find('input:checkbox')[0].checked = true;

                }
            });


        });

Это работает, но я не могу изменить цвет текста, который находится в представлении сетки . Я хочу это, потому что черный на фиолетовом не видно. Я попытался добавить это:


$(this).closest('td').css("color", "white");

Но это не работает, хотя это класс, для которого нужно изменить цвет.

Любая помощь будет очень принята.

1 Ответ

1 голос
/ 29 мая 2020

Вместо closest(..) используйте children(...). closest ищет в предках элемента, начиная с самого себя - поэтому он работает для tr. Но td является потомком tr, поэтому ближайший его не найдет.

Попробуйте это так:

            $('#GridView1 tr').live('click', function (event) {
                if ($(event.target).is(':checkbox')) {
                    return;
                }

                var chkboxSelection = $(this).find('input:checkbox')[0].checked;
                if (chkboxSelection == true) {
                    $(this).closest('tr').css("background-color", "white");
                    $(this).find('input:checkbox')[0].checked = false;  

                }
                else if (chkboxSelection == false) {
                    $(this).children('td').css("color", "white");
                    $(this).closest('tr').css("background-color", "#6c42a6");
                    $(this).find('input:checkbox')[0].checked = true;
                }
            });

Ознакомьтесь с jQuery API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...