获取动态生成的表的span标签内的文本?

时间:2015-01-16 05:49:53

标签: jquery jquery-traversing

我有一个动态生成的企业应用程序页面。数据在表结构内。我需要在此表中访问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标记内的值

4 个答案:

答案 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; 
});