题
是否有selector
我可以查询ID以给定字符串结尾的元素?
假设我有一个id为ctl00$ContentBody$txtTitle
的元素。如何通过传递txtTitle
?
解决方案
如果您知道元素类型,那么:(例如:将'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" />
其他提示
问题的答案是$("[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']")
尝试
$("element[id$='txtTitle']");
编辑:迟到4秒:P
$('element[id$=txtTitle]')
引用与
匹配的文本片段并不是绝对必要的将下划线或$添加到您要搜索的字词更安全,因此不太可能匹配以相同ID结尾的其他元素:
$("element[id$=_txtTitle]")
(其中元素是您要查找的元素类型 - 例如div
,input
等。
(注意,你建议你的ID往往有$符号,但我认为.NET 2现在倾向于在ID中使用下划线,所以我的例子使用下划线)。
一个例子: 选择ID以_edit:
结尾的所有<a>
s
jQuery("a[id$=_edit]")
或
jQuery("a[id$='_edit']")
由于这是ASP.NET,您只需使用ASP <!> lt;%=%<!> gt;标签打印生成的txtTitle的ClientID:
$('<%= txtTitle.ClientID %>')
这将导致......
$('ctl00$ContentBody$txtTitle')
...呈现页面时。
注意:在Visual Studio中,Intellisense会因为将ASP标记放入JavaScript而对你大喊大叫。您可以忽略这一点,因为结果是有效的JavaScript。
试试这个:
<asp:HiddenField ID="0858674_h" Value="0" runat="server" />
var test = $(this).find('[id*="_h"').val();
为了找到以<!>引尾的iframe ID; iFrame <!> quot;在包含许多iframe的页面中。
jQuery(document).ready(function (){
jQuery("iframe").each(function(){
if( jQuery(this).attr('id').match(/_iFrame/) ) {
alert(jQuery(this).attr('id'));
}
});
});