javascript - Foreach 表行通过 ID 及其值查找特定控件

标签 javascript php jquery asp.net

我正在尝试在 jQuery 中编写一个函数,该函数将遍历所有表行并通过特定的隐藏控件 ID“hdnIsEmpty”搜索隐藏字段值,问题是我不知道如何做到这一点隐藏控件ID,因为还有其他隐藏控件不一定要触摸... 也许还有其他方法可以得到我不想要的东西,但这是我不成功的尝试/方法,也是我所知道的唯一方法:

<udc:Repeater ID="repDetailedInformation" runat="server" DataSource='<%# Eval("DetailsInformation") %>'>
<table id="tblDetails">
    <tbody>
        <tr>
            <td>
                BLA-BLA-BLA Information
            </td>
        </tr>
        <tr>
            <td>
                <udc:HiddenField ID="hdnIsEmpty" runat="server" Value='<%#Eval("IsEmpty") %>' />
            </td>
        </tr>
        <tr>
            <td>
                <udc:HiddenField ID="hdnBlaBla" runat="server" Value='<%#Eval("BlaBla") %>' />
            </td>
        </tr>
        <tr>
            <td>
                BLA-BLA-BLA Information
            </td>
        </tr>
    </tbody>
</table>

和 jQuery:

<script type="text/javascript">
$(document).ready(function () {
    function getHiddenBoolean(name) {
        var selector = 'input:hidden[name$="' + name + '"]';
        var field = $(selector);
        return (field != null && field.length > 0) ? field.val().toLowerCase() == "true" : false;
    };  

    var filteredRows = $('#tblDetails tr td').filter(function () {
        return $(this).find('#hdnIsEmpty');
    });

    $.each(filteredRows, function () {
        var isEmpty = getHiddenBoolean(filteredRows);
    });
})

最佳答案

您遇到的第一个问题是 ASP.Net Webforms 在运行时更改所有 runat="server" 元素的 id,因此您无法通过它们进行选择。即使可以,在这种情况下也会有重复项,这是无效的。相反,您可以向这些元素添加一个 class 来标识它们。

<tr>
    <td>
        <udc:HiddenField ID="hdnIsEmpty" runat="server" class="hiddenfield" Value='<%#Eval("IsEmpty") %>' />
    </td>
</tr>

从那里你可以循环该类选择器,如下所示:

$(document).ready(function () {
    $('#tblDetails tr td .hiddenfield').each(function() {
        if ($(this).val().toLowerCase() == 'true') {
            // do something here...
        }
    });
});

如果您无法在控件上添加 class 属性,则可以使选择器更通用:

$(document).ready(function () {
    $('#tblDetails tr td input:hidden:first').each(function() {
        if ($(this).val().toLowerCase() == 'true') {
            // do something here...
        }
    });
});

关于javascript - Foreach 表行通过 ID 及其值查找特定控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37816172/

相关文章:

javascript - 为什么使用 obj.method.call(obj, arg) 而不是 obj.method(arg)?

javascript - 如何创建包含可通过侧边栏切换的多页数据的页面?

php - 将信息数组传递到数据库中

javascript - 响应式 jQuery 或 JavaScript 框架

javascript - 带分页点的 JQuery jCarousel?

javascript - "Run if I haven' t 在 x 秒内被调用”在 JavaScript 中

php - file_get_contents 在 HTTP 下工作但在 HTTPS 下不工作

php - SSH 连接到我的共享主机后,如何告诉 Deployer 使用不同的 PHP 版本?

javascript - 页面加载后的 Ajax 调用

javascript - 按钮作为 Google Analytics 漏斗的虚假链接