1

我有一段时间让这个工作。应该很简单,但我尝试过的每条路线都没有奏效。这是我现在使用的 jQuery:

<script type="text/javascript">
    $(document).ready(function () {

        //filter list by year
        $(function () {
            $("#ddYear").change(function (evt) {
                var year = $("#ddYear").val();

                $('tr').show();

                $("td[id^='AccessRequestID']").each(function () {
                    alert("Checking " + this.val);
                    if ($(this).attr("class") == ".AR_" + year) {
                        alert("Hiding " + this.val);
                        $(this).parent().hide();
                    }
                });
            });
        });
    });
</script>

这是我要过滤的表:

<div class="index-header">Select a Year to View: <%:Html.DropDownList("ddYear", Model.YearList, null %></div>

<table id="arTable">
    <tr>
        <th>
            Year
        </th>
        <th>
            Version
        </th>
        <th>
            Name
        </th>

    </tr>

    <% foreach (var item in Model.AccessRequests) { %>

        <tr class="clickable">
            <td id="AccessRequestID<%=item.Access_Request_ID%>" class="<%:string.Format("AR_{0}", item.RECORD_YEAR) %>">
                <%: Html.DisplayFor(modelItem => item.RECORD_YEAR) %>
            </td>
            <td>
                <%: Html.DisplayFor(modelItem => item.VERSION_NO) %>
            </td>
            <td>
                <%: Html.DisplayFor(modelItem => item.EMPLOYEE_NAME) %>
            </td>
        </tr>

    <% } %>

</table>  

我最初尝试做这样的事情:

$("td[id^='AccessRequestID']").parent().hide().filter('.AR_' + year).show();

虽然这很好地过滤了行,但它并没有在应该有的时候取消过滤它们。所以我尝试$("td[id^='AccessRequestID']").parent().show;先添加以重置它,但这并没有做任何事情。(我也尝试过.each(),正如您在我上次尝试中看到的那样)。非常感谢任何建议或帮助!

4

2 回答 2

3

试试这个小提琴http://jsfiddle.net/96Evt/ 代码在下面,我也在小提琴中添加了一些演示表行。

$("#ddYear").on('change', function () {
        var year = $("#ddYear").val();
        $('tr').show();

        $("td.AR").each(function (index, tdAR) {
            if ($(tdAR).hasClass("AR_" + year)) {
                $(tdAR).parent('tr').hide();
            }
        });
});
于 2013-08-19T20:28:05.307 回答
1

应该可以,我在您的标记中看到 idTd1但在哪里[id^='AccessRequestID']

于 2013-08-19T20:20:13.367 回答