jQueryselect器:ID结束?

有没有一个select器,我可以查询ID与一个给定的string结束的元素?

假设我有一个ID为“ctl00 $ ContentBody $ txtTitle”的元素。 我怎样才能通过传递“txtTitle”?

如果你知道元素types,那么:(例如:用'div'replace'元素')

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

如果您不知道元素types:

$("[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" /> 

这个问题的答案是$("[id$='txtTitle']") , 正如马克·赫德(Mark Hurd)所回答的那样 ,但是对于像我这样的人来说,要find一个以给定string开头的所有元素例如txtTitle),试试这个( doc ):

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

如果你想selectid 包含给定string( doc )的元素:

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

如果你想selectid 不是给定string( doc )的元素:

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

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

如果要selectid 包含给定单词的元素,请用空格分隔 ( doc ):

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

如果要selectid 等于给定string的元素, 或者以该string开头并连字符 ( doc ):

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

尝试

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

编辑:晚4秒:P

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

引用您所匹配的文本片段并不是必须的

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

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

(其中元素是你试图find的元素的types – 例如divinput

(注意,你build议你的ID往往有$符号,但是我认为.NET 2现在倾向于在ID中使用下划线,所以我的示例使用下划线)。

例如:select所有以ID结尾的<a> s _edit:

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

要么

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

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

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

这将导致…

 $('ctl00$ContentBody$txtTitle') 

当页面呈现时

注意:在Visual Studio中,Intellisense会在你的JavaScript中放置ASP标签。 你可以忽略这个结果是有效的JavaScript。

尝试这个:

 <asp:HiddenField ID="0858674_h" Value="0" runat="server" /> var test = $(this).find('[id*="_h"').val(); 

为了在包含多个iframe的页面中查找以“iFrame”结尾的iframe ID。

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