Jquery 获取活动卡的值
我有一个MVC页面,为从数据库中检索到的每个项目动态生成一个card元素——每个卡片上都有一个按钮,我试图从被单击的卡片上设置一些值,以填充不同的元素 卡代码:Jquery 获取活动卡的值,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我有一个MVC页面,为从数据库中检索到的每个项目动态生成一个card元素——每个卡片上都有一个按钮,我试图从被单击的卡片上设置一些值,以填充不同的元素 卡代码: <div class="uk-grid"> @foreach (var entry in Model.Items) { <div> <div class="uk-card uk-card-hover uk-card-body">
<div class="uk-grid">
@foreach (var entry in Model.Items)
{
<div>
<div class="uk-card uk-card-hover uk-card-body">
@if (entry.new_Flag == 1)
{
<span class="uk-label-newitem" style="display: normal;">New Item</span>
}
else
{
<span class="uk-label-newitem" style="display: none;">New Item</span>
}
@if (entry.stage1_flag == 1)
{
<span class="uk-label-s1" style="display: normal;">Awaiting Stage 1 Sign Off</span>
}
else
{
<span class="uk-label-s1" style="display: none;">Awaiting Stage 1 Sign Off</span>
}
@if (entry.stage2_flag == 1)
{
<span class="uk-label-s2" style="display: normal;">Awaiting Stage 2 Sign Off</span>
}
else
{
<span class="uk-label-s2" style="display: none;">Awaiting Stage 2 Sign Off</span>
}
@if (entry.live_flag == 1)
{
<span class="uk-label-live" style="display: normal;">Item Live</span>
}
else
{
<span class="uk-label-live" style="display: none;">Item Live</span>
}
<h3 class="uk-card-title" id="uk-card-title"><b>@entry.kpi_Name</b></h3>
<p>Info here</p>
<button class="uk-button uk-button-default" type="button" id="btndetails" data-interaction="@entry.kpi_pk" uk-toggle="target: #offcanvas-overlay">Details</button>
</div>
</div>
}
</div>
我有一个非画布元素,可以滑入其中以显示卡中的更多信息,但这些详细信息需要通过此按钮单击操作进行设置,并从卡中获取。
当单击第一张卡时触发警报,但由于@guradio使用以下方法修复了其他卡,其他卡均未触发警报:
$(".uk-button").on('click', function () {
var $item = $(this).prev().prev().text();
alert($item);
});
如果您正在查找以前的h3使用.prev.prev而不是最近的,则最近的将查找父级而不是兄弟级。您的意思是这样的?var$item=$this.prevuk-card-title.text$this.prev.prev.text;像这样,但这不是干净的,如果你将改变标记upOK的工作,但再次只为第一张卡创建。。。任何后续卡都不会触发警报,只会打开您正在使用ID的侧栏。如果您有其他卡,我假设您有相同的ID。ID应该是唯一的。改为使用类,然后使用它来引用单击的元素。
$(".uk-button").on('click', function () {
var $item = $(this).prev().prev().text();
alert($item);
});