获取动态生成的 table 的 span 标签内的文本?
Get the text inside span tag of dynamically generated table?
我有一个动态生成的企业应用程序页面。数据在 table 结构中。我需要访问此 table.
内的 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 标签内的值??
试试这个
$(document).on("click", ".delete-site", function (e) {
var item = $(this);
var name = $(item).find("span[class='site-name']");
alert(name.text());
return false;
});
试试这个
$(document).on("click", ".delete-site", function (e) {
var item = $(this);
var name = item.closest("span").find("site-name");
alert(name.text());
return false;
});
替换为:
var name = $(item.closest("span[class='site-name']"));
有了这个:
var name = $(item.closest("tr").find("span[class='site-name']"));
因为 .site-name
span 不在你的父 td 中,所以使用 closest 来使用具有 .site-name
的最近的父 tr 然后使用 find 来获取元素
你需要的是找到最接近的<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;
});
我有一个动态生成的企业应用程序页面。数据在 table 结构中。我需要访问此 table.
内的 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 标签内的值??
试试这个
$(document).on("click", ".delete-site", function (e) {
var item = $(this);
var name = $(item).find("span[class='site-name']");
alert(name.text());
return false;
});
试试这个
$(document).on("click", ".delete-site", function (e) {
var item = $(this);
var name = item.closest("span").find("site-name");
alert(name.text());
return false;
});
替换为:
var name = $(item.closest("span[class='site-name']"));
有了这个:
var name = $(item.closest("tr").find("span[class='site-name']"));
因为 .site-name
span 不在你的父 td 中,所以使用 closest 来使用具有 .site-name
的最近的父 tr 然后使用 find 来获取元素
你需要的是找到最接近的<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;
});