-1
设置。jquery选择子元素
我正在使用MVC 5,并且我创建了一个视图,其中以视图模型的形式发送数据。
在此视图中,我将List对象渲染为堆叠的div,如下所示。如您所见,我显示隐藏字段,以便viewModel在提交时将数据发送回控制器。
<div class="row item-row">
<div class="small-4 columns">
objType
</div>
<div class="small-6 columns">
<input id="object_0__Id" name="object[0].Id" type="hidden" value="999999">
<input id="object_0__Reference" name="object[0].Reference" type="hidden" value="myRef">myRef
<input id="object_0__RecordChanged" name="object[0].RecordChanged" type="hidden" value="NoChange">
</div>
<div class="small-2 columns remove-item">
<button class="button tiny expand centre button-gray" onclick="javascript: RemoveItem(999999);">Remove</button>
</div>
</div>
<div class="row item-row">
<div class="small-4 columns">
objType
</div>
<div class="small-6 columns">
<input id="object_1__Id" name="object[1].Id" type="hidden" value="000001">
<input id="object_1__Reference" name="object[1].Reference" type="hidden" value="myRef">myRef
<input id="object_1__RecordChanged" name="object[1].RecordChanged" type="hidden" value="NoChange">
</div>
<div class="small-2 columns remove-item">
<button class="button tiny expand centre button-gray" onclick="javascript: RemoveItem(000001);">Remove</button>
</div>
</div>
好了,所以javascript函数的removeItem是:
function RemoveItem(id)
{
event.preventDefault();
var element = $(event.target).closest('.item-row');
$(element).closest('DeedReference_0__RecordChanged').val('Deleted'); ***** This is what I am trying to do.
$(element).hide();
}
根据以上所述,当我点击发言权的removeItem(00001),可变元件包含以下内容:
<div class="small-4 columns">
objType
</div>
<div class="small-6 columns">
<input id="object_0__Id" name="object[0].Id" type="hidden" value="000001">
<input id="object_0__Reference" name="object[0].Reference" type="hidden" value="myRef">myRef
<input id="object_0__RecordChanged" name="object[0].RecordChanged" type="hidden" value="NoChange">
</div>
<div class="small-2 columns remove-item">
<button class="button tiny expand centre button-gray" onclick="javascript: RemoveItem(000001);">Remove</button>
</div>
我需要更新的值是object [0] .RecordChanged,但在这个时候,我不知道索引值。所以我打算在选择器上使用两端,但是无法使其工作。
只要我有:
$(event.target).closest('.item-row').children()[1]
但是这给了我在div,因为我曾尝试:
$(event.target).closest('.item-row').children()[1].Find('Id*"__RecordChanged"')
$(event.target).closest('.item-row [id*="RecordChanged"]')
$(event.target).closest('.item-row:[id*="RecordChanged"])
并采用可变
$(element [id*="RecordChanged"])
$(element [id$="RecordChanged"])
UPDATE
修复了代码中的错误,提示我正在查看错误的索引。另外,如果我点击RemoveItem(000001)的删除按钮,我试图更新值object_0__RecordChanged。
'最接近的'找到匹配给定选择器的元素的最接近的祖先。你想要“孩子”还是“发现”? – evolutionxbox
刚刚修复与代码问题 – gilesrpa