我有一个动态生成的企业应用程序页面。数据在表结构内。我需要在此表中访问span标记的值。
<table class="table table-bordered table-hover table-striped">
<thead>
...
</thead>
<tbody>
@foreach (var item in Model.Select((x, i) => new { Data = x, Index = i }))
{
<tr>
<td>@(item.Index + ((Model.PageNumber - 1) * Model.PageSize) + 1)</td>
<td>
**<span class="site-name">
@Html.DisplayFor(modelItem => item.Data.SITENAME)
</span>** //Want to access item inside span
</td>
<td>@Html.DisplayFor(modelItem => item.Data.REMARKS)</td>
<td>
<a href="@Url.Action("Delete", new { id = item.Data.ID })"
class="btn btn-sm btn-danger delete-site">
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
</a>
</td>
</tr>
}
</tbody>
Jquery看起来像这样
$(document).on("click", ".delete-site", function (e) {
var item = $(this);
var name = $(item.closest("span[class='site-name']"));
alert(name.text());
return false;
});
我在这里得到一个空警报框。
如何使用jquery ??
获取span标记内的值答案 0 :(得分:1)
替换它:
var name = $(item.closest("span[class='site-name']"));
有了这个:
var name = $(item.closest("tr").find("span[class='site-name']"));
由于.site-name
范围不在您的父级td内,因此请使用最接近使用.site-name
的最近父级tr,然后使用find获取元素
答案 1 :(得分:0)
试试这个
$(document).on("click", ".delete-site", function (e) {
var item = $(this);
var name = $(item).find("span[class='site-name']");
alert(name.text());
return false;
});
答案 2 :(得分:0)
试试这个
$(document).on("click", ".delete-site", function (e) {
var item = $(this);
var name = item.closest("span").find("site-name");
alert(name.text());
return false;
});
答案 3 :(得分:0)
您需要找到最接近的<tr>
,然后找到范围
$(document).on("click", ".delete-site", function(e) {
var item = $(this);
var name = item.closest("tr").find("td span[class='site-name']");
alert(name.text());
return false;
});