Мне нужна помощь, чтобы динамически изменять 3 разметки в разметке представления MVC Razor. Разметка html приведена ниже

Странный

<li class="active">
  <div class="widget widget-heading-simple">
    <div class="widget-body">
      <div class="row"> 
        <div class="col-md-4 center">
          <a href="" class="thumb">
            <img src="/@item.image" class="img" alt="Image" />
          </a>
        </div>
        <div class="col-md-8 padding-none">
          <h5 class="strong text-uppercase">@item.title</h5>
          <div class="separator bottom">
          </div>
          <p>@Html.Raw(Html.Truncate(item.Text, 20, "...."))</p>
        </div>
      </div>
    </div>
  </li>

Четный

<li class="active">
  <div class="widget widget-heading-simple">
    <div class="widget-body">
      <div class="row"> 
        <div class="col-md-8 center">
          <a href="" class="thumb">
            <img src="/@item.image" class="img" alt="Image" />
          </a>
        </div>
        <div class="col-md-4 padding-none">
          <h5 class="strong text-uppercase">@item.title</h5>
          <div class="separator bottom">
          </div>
          <p>@Html.Raw(Html.Truncate(item.Text, 20, "...."))</p>
        </div>
      </div>
    </div>
  </li>

Мне нужно чередовать или вводить классы в div для последовательных строк (т.е. нечетных и четных)
например, для нечетной строки

<div class="widget widget-heading-simple widget-body-white "> ,<div class="col-md-4 center">  and <div class="col-md-8 padding-none">

Для четного ряда

<div class="widget widget-heading-simple  widget-body-gray">,<div class="col-md-8 center">  and <div class="col-md-4 padding-none">

Я пробовал jQuery, как показано ниже

<script type="text/javascript">
        $(document).ready(function () {
            $('.widget:first').addClass('widget-body-white');
            $('.widget:second').addClass('widget-body-gray');

        });
  </script>

Безрезультатно ничего не происходит, и я не знаю, как настроить требования col-md-4 или 8. Любая помощь будет оценена

1
Diin 9 Июл 2014 в 08:44
У вас есть вложенный div с class = "widget", как вы можете установить чередующийся серый и белый цвет фона?
 – 
Bhushan Kawadkar
9 Июл 2014 в 08:55
Да, и я также должен чередовать
и
на
и
 – 
Diin
9 Июл 2014 в 08:59

4 ответа

Лучший ответ

Попробуй это :

$(document).ready(function () {
    $('.widget:odd').addClass('widget-body-white');
    $('.widget:odd').find('[class^=col-md]:first').attr('class','col-md-4 center');
    $('.widget:odd').find('[class^=col-md]:last').attr('class','col-md-8 padding-none');

    $('.widget:even').addClass('widget-body-gray');
    $('.widget:odd').find('[class^=col-md]:last').attr('class','col-md-4 center');
    $('.widget:odd').find('[class^=col-md]:first').attr('class','col-md-8 padding-none');
});

Демо

0
Bhushan Kawadkar 9 Июл 2014 в 11:22
Спасибо, если нечетное равно col-md-4 center и .col-md-8 padding-none, даже становится col-md-8 center и col-md-4 padding-none. 4 и 8 меняются местами между нечетным и четным
 – 
Diin
9 Июл 2014 в 09:22
Теперь у меня есть идея удалить 4 и добавить 8 и наоборот для нечетного и четного, но я хочу отдать вам должное, если вы отредактируете свой ответ.
 – 
Diin
9 Июл 2014 в 09:40
Вы хотите сделать div 4 в нечетном .widget и div 8 в четном? вот так jsfiddle.net/9bShX/42
 – 
Bhushan Kawadkar
9 Июл 2014 в 10:21
Col-md чередует изображение слева направо. Я добавил нечетный и четный сценарий для col-md - чтобы уточнить
 – 
Diin
9 Июл 2014 в 11:07

Попробуй это

$('.widget:odd').addClass("widget-body-white")
$('.widget:even').addClass("widget-body-gray")

Ссылка Выбрать четные / нечетные дочерние div

0
Community 23 Май 2017 в 13:26
Спасибо, мне также нужно чередовать
и
с
и
 – 
Diin
9 Июл 2014 в 09:10

Попробуй так

$(document).ready(function () {
    $('div.widget').filter(":odd").addClass('widget-body-white');
    $('div.widget').filter(":even").addClass('widget-body-gray');

});
0
Sridhar R 9 Июл 2014 в 08:54

Попробуйте это с помощью четных и нечетных селекторов:

$(document).ready(function () {
    $('.widget:odd').addClass('widget-body-white');
    $('.widget:even').addClass('widget-body-gray');
});

Вы также можете использовать селектор nth-child:

$('li.active:nth-child(odd)').addClass('widget-body-white');
$('li.active:nth-child(even)').addClass('widget-body-gray');

ИЗМЕНИТЬ Если вам нужно добавить несколько классов, просто отредактируйте функцию addClass() соответствующим образом. Из документации: $( "p" ).addClass( "myClass yourClass" );

Итак, в вашем случае:

$(document).ready(function () {
    $('.widget:odd').addClass('widget-body-white  col-md-4 center');
    $('.widget:even').addClass('widget-body-gray  col-md-8 padding-none');
});
0
Marco 9 Июл 2014 в 10:21
Спасибо, мне также нужно чередовать
и
с
и
 – 
Diin
9 Июл 2014 в 09:05