无法通过 jQuery 选择网格元素

Posted

技术标签:

【中文标题】无法通过 jQuery 选择网格元素【英文标题】:Cannot select grid element through jQuery 【发布时间】:2010-12-08 04:59:28 【问题描述】:

这是ASP.NET How to pass container value as javascript argument的后续问题

Darin Dimitrov 使用jQuery 提供了his answer, 但由于某种原因,我无法选择我想要的网格行。

这是用于选择行的jQuery。

$(function() 
    $('#_TrustGrid input[name^=trustDocIDTextBox]').each(function(index) 
        $(this).click(function() 
            alert('Hello world = ' + index);
            setGridInEditMode(index);
        );
    );
);

这是实际输出的 html 标记。

<input 
    id="_TrustGrid_ctl16_ctl05_ctl00_trustDocIDTextBox" 
    type="text" value="198327493" 
    name="_TrustGrid$ctl16$ctl05$ctl00$trustDocIDTextBox"/>

我今晚才开始使用 jQuery,并浏览了 jQuery Selectors 官方文档,但没有成功。

我在这里遗漏了什么吗?

【问题讨论】:

@thanks, Nescio:试图解决一个问题让我就这样进入了 jQuery。 ;) 以这种方式学习非常有趣。 【参考方案1】:

我做了什么来保存我在 .aspx 页面中使用的控件的完整 ID:

<input type="hidden" 
       id="SubcontractorDropDownID" 
       value="<%= SubcontractorDropDown.ClientID %>" />

然后,您可以获取 id 的值,然后在查询中使用它来知道要使用哪一行。

【讨论】:

【参考方案2】:

乍一看,我认为您只需要一个“$”而不是“^”,并且您应该在选择器中定位 ID 而不是 NAME?

$(function() 
    $('#_TrustGrid input[id$=trustDocIDTextBox]').each(function(index) 
        $(this).click(function() 
            alert('Hello world = ' + index);
            setGridInEditMode(index);
        );
    );
);

【讨论】:

【参考方案3】:

我不知道为什么通过#_TrustGrid 选择不起作用。 我可以通过指定:input 来解决这个问题,如下所示。

    $(function() 
        //$('#_TrustGrid input[id$=trustDocIDTextBox]').each(function(index) 
        $(':input[id$=trustDocIDTextBox]').each(function(index) 
            $(this).click(function() 
                alert('Hello world = ' + index);
                setGridInEditMode(index);
            );
        );
    );

【讨论】:

以上是关于无法通过 jQuery 选择网格元素的主要内容,如果未能解决你的问题,请参考以下文章

无法选择具有类名的最后一个元素:JQuery

jQuery 不选择具有动态 ID 的元素,如何做到这一点?

JQuery获取元素的方法总结

我无法选择使用 jquery 动态创建的 html 元素

无法使用 div 中存在的 jquery 找到选择元素?

属性选择器:无法将一个元素与另一个元素隔离