获取动态生成的 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; 
});