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 – 例如div
, input
等
(注意,你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')); } }); });