Мне нужна помощь, чтобы динамически изменять 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

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 в 07:22

Попробуй это

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

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

0
Community 23 Май 2017 в 10:26

Попробуй так

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

});
0
Sridhar R 9 Июл 2014 в 04: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 в 06:21