#c# #jquery #razor #model-view-controller
#c# #jquery #razor #модель-представление-контроллер
Вопрос:
Я пытаюсь динамически добавлять панели в существующий привязанный к модели список панелей (панель-группа). Индекс конкретной панели указывает, на какой позиции панель в списке. Однако динамически добавляемые панели в списке всегда имеют индекс добавленной панели как 0.
for (int i = 0; i < Model.ListofItem.Count; i )
{
<div class="panel panel-default">
<div class="panel-heading">Panel Heading</div>
<div class="panel-body">@Html.TextBoxFor(model => Model.List[i].item, new { @class = "form-control" })</div>
</div>
}
Предположим, что список содержит 10 панелей, тогда, если я добавлю панель (клонирование и добавление), тогда индекс добавленной панели должен быть 10, но он всегда равен 0. Почему я не могу получить индекс добавленных панелей на стороне клиента? и как мне их получить?
Комментарии:
1. Где код для определения индекса элементов?
2. .index() должен выдавать индекс любой панели. Я добавляю класс с именем ‘Panelx’ к панели, которую я создаю динамически. поэтому в этом случае индекс будет получен как $(‘.Panelx’).index()
Ответ №1:
Если методу .index() не передается аргумент, возвращаемое значение представляет собой целое число, указывающее положение первого элемента в объекте jQuery относительно его родственных элементов.
давайте $('.Panelx').index()
немного разберемся
$('.Panelx')
вернет список панелей с классом Panelx
. .index()
вернет положение первого элемента относительно списка. поскольку первый элемент в списке — это просто элемент с индексом 0. Его относительная позиция также будет равна 0, и именно поэтому вы получаете 0 обратно. Работает так, как задумано.
Комментарии:
1. что мне тогда делать, чтобы получить индекс относительно списка? Я имею в виду относительно основного списка, в который я добавляю
2. @user5772245 получите список, перечислите его, пока не найдете нужный элемент и не вернете текущий индекс?