Динамическое изменение имени класса CSS

0

Мне нужно изменить имя класса CSS всех элементов на странице с определенным именем класса (.k-textbox). Я попробовал код ниже, но не попал внутрь функции.each()

<script>
    $(document).ready(function () {    
        $(".k-textbox").each(function () {
            //alert("a");
            $(this).removeClass("k-textbox");
            $(this).addClass("input-medium");
        });
    });
    </script> 

На странице у меня есть стороннее управление сеткой. класс CSS, о котором я упоминал, находится внутри этого элемента управления сетью третьей стороны.

ниже находится объект DOM:

Изображение 174551

  • 0
    создаются ли элементы ввода динамически
  • 0
    Покажите нам свой HTML? может быть, у вас неправильный класс или что-то
Показать ещё 5 комментариев
Теги:

2 ответа

6

Вы должны попытаться использовать API цепочки, предоставляемый библиотекой jQuery:

$(".k-textbox").removeClass("k-textbox").addClass("input-medium");

редактировать:

Пока элементы создаются динамически, вы можете попытаться запустить этот код после создания этих элементов. Но если вы не знаете, когда они вставлены в код и не имеют контроля над ними, вы можете попробовать написать простую функцию watch, то есть:

var watchTimer = setInterval(function () {
      var inputs = $('.k-textbox');
      if (inputs.length) {
          // clear interval
          clearInterval(watchTimer);

          // change class
          inputs.removeClass("k-textbox").addClass("input-medium");
      }
    }, 100);
  • 1
    Хотя это лучший синтаксис, логически он ничем не отличается от того, что имеет OP. Я не уверен, почему за это проголосовали?
  • 0
    пожалуйста, смотрите редактирование
Показать ещё 4 комментария
0

используйте addClass() и removeClass()

$(".k-textbox").removeClass("k-textbox").addClass("input-medium");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню