.parent (). find ('img'). eq (0) Ошибка - PullRequest
0 голосов
/ 06 июня 2018

Я хочу захватить 'img' внутри тега 'a', но, к сожалению, не могу достичь.Ниже мой HTML:

<table class="table table-bordered">
    <thead>
        <tr>
            <td>Category Name</td>
            <td>Status</td>
            <td>Display Rank</td>
        </tr>
    </thead>
    <tbody>            
        @foreach (var category in Model)
        {
            <tr>
                <td style="width: 200px">
                    <span style="cursor: pointer">@category.Name</span>
                </td>
                <td style="width: 200px">
                    <div id="@category.ID">
                        @if (category.Status == 1)
                        {
                            <img src="~/img/ok-icon.png" />
                            <a href="javascript:void(0)" class="make-passive"><img val="@category.ID"  src="~/img/Alarm-Error-icon.png" /></a>
                        }
                        else if (category.Status == 0)
                        {
                            <a href="javascript:void(0)" class="make-active">
                                <img val="@category.ID" src="~/img/Alarm-Tick-icon.png" />
                            </a>
                            <img src="~/img/Close-icon.png" />
                        }
                    </div>
                </td>
                <td style="width: 160px">
                    <a href="javascript:void(0)" class="take-up">
                        <img src="~/img/Arrows-Up-4-icon.png" />
                    </a><br />
                    <a href="javascript:void(0)" class="take-down">
                        <img src="~/img/Arrows-Down-4-icon.png" />
                    </a>
                </td>
            </tr>
        }
    </tbody>
</table>

И это мой JS-код:

<script type="text/javascript">
$(document).on('click', 'a.make-passive', function () {
    var imgPassive = $(this).parent().find('img').eq(0);
    var imgNo = imgPassive.attr('val');
    $.ajax({
        type: 'POST',
        dataType: 'json',
        url: "@Url.Action("DeactivateCategory", "Admin")/" + imgNo,
        success: function (data) {
            alert(data.Name + "has been successfully removed among active categories.");
            $('#' + imgNo).html("trial by sword");
        },
        error: function (data) {
            alert(data.Name + "cannot be removed among the other categories. An error occured.");
        }
    });
});

Установив отладчики, я понял, что проблема исходит от var imgPassive = $(this).parent().find('img').eq(0);

Я успешно использовал .parent().find() методы на нескольких других страницах, но не вижу, что не работает на этой странице.

Заранее спасибо!

1 Ответ

0 голосов
/ 06 июня 2018

Вам не нужно $(this).parent().find('img').eq(0);, поскольку img, который вы хотите получить, находится внутри элемента, по которому щелкнули.Вы можете просто сделать $(this).find('img').eq(0);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...