418

是否selector可以查询 ID 以给定字符串结尾的元素?

假设我有一个 id 的元素ctl00$ContentBody$txtTitle。我怎样才能通过只是得到这个txtTitle

4

9 回答 9

663

如果您知道元素类型,那么:(例如:将 'element' 替换为 'div')

$("element[id$='txtTitle']")

如果您不知道元素类型:

$("[id$='txtTitle']")

提供更多信息


// the old way, needs exact ID: document.getElementById("hi").value = "kk";
$(function() {
  $("[id$='txtTitle']").val("zz");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="ctl_blabla_txtTitle" type="text" />

于 2009-03-04T06:06:42.337 回答
260

问题的答案是$("[id$='txtTitle']")正如 Mark Hurd 回答的那样,但是对于像我一样想要找到所有 id以给定字符串开头的元素(例如 txtTitle)的人,试试这个(doc):

$("[id^='txtTitle']")

如果要选择 id包含给定字符串 ( doc ) 的元素:

$("[id*='txtTitle']")

如果要选择 id不是给定字符串 ( doc ) 的元素:

$("[id!='myValue']")

(它也匹配没有指定属性的元素)

如果要选择 id 包含给定单词的元素,由空格( doc )分隔

$("[id~='myValue']")

如果要选择 id等于给定字符串或以该字符串开头后跟连字符( doc ) 的元素:

$("[id|='myValue']")
于 2011-05-03T07:15:24.197 回答
35

尝试

$("element[id$='txtTitle']");

编辑:晚了 4 秒:P

于 2009-03-04T06:06:46.317 回答
33
$('element[id$=txtTitle]')

引用您要匹配的文本片段并不是绝对必要的

于 2009-03-20T14:50:46.640 回答
13

将下划线或 $ 添加到您正在搜索的术语中更安全,因此不太可能匹配以相同 ID 结尾的其他元素:

$("element[id$=_txtTitle]")

(其中element是您要查找的元素类型 - 例如divinput等。

(注意,您是在暗示您的 ID 中往往带有 $ 符号,但我认为 .NET 2 现在倾向于在 ID 中使用下划线,因此我的示例使用下划线)。

于 2009-05-14T08:29:01.250 回答
3

示例:选择<a>ID 以 _edit 结尾的所有 s:

jQuery("a[id$=_edit]")

或者

jQuery("a[id$='_edit']")
于 2010-07-22T08:24:26.707 回答
3

由于这是 ASP.NET,您可以简单地使用 ASP <%= %> 标签打印生成的 txtTitle 的 ClientID:

$('<%= txtTitle.ClientID %>')

这将导致...

$('ctl00$ContentBody$txtTitle')

...当页面被渲染时。

注意:在 Visual Studio 中,Intellisense 会因为您在 JavaScript 中放置 ASP 标签而大喊大叫。您可以忽略它,因为结果是有效的 JavaScript。

于 2012-10-19T15:27:42.753 回答
1

试试这个:

<asp:HiddenField ID="0858674_h" Value="0" runat="server" />

var test = $(this).find('[id*="_h"').val();
于 2012-05-09T09:16:14.770 回答
0

为了在包含许多 iframe 的页面中找到以“iFrame”结尾的 iframe id。

jQuery(document).ready(function (){     
                  jQuery("iframe").each(function(){                     
                    if( jQuery(this).attr('id').match(/_iFrame/) ) {
                            alert(jQuery(this).attr('id'));

                     }                   
                  });     
         });
于 2011-12-06T20:32:43.830 回答