jQuery选择器:Id以?

是否有一个selector,我可以查询ID以给定字符串结尾的元素?

假设我有一个id为ctl00$ContentBody$txtTitle的元素。如何通过只传递txtTitle来获得这个?

315286 次浏览

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

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

试一试

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

编辑:4秒晚:P

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

没有必要严格地引用要匹配的文本片段

在你要搜索的词后加上下划线或$会更安全,这样它就不太可能匹配到以相同ID结尾的其他元素:

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

(其中元素是你要查找的元素类型,例如divinput等。

(注意,您建议您的ID中倾向于使用$符号,但我认为。net 2现在倾向于在ID中使用下划线,因此我的示例使用下划线)。

< p >一个例子: 选择所有ID以_edit结尾的__abc0:

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

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

问题的答案是$("[id$='txtTitle']")正如马克·赫德回答的那样,但对于那些像我一样想要找到所有具有开始于给定字符串的id的元素(例如txtTitle)的人来说,尝试这个(医生):

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

如果你想选择id为包含的给定字符串(医生)的元素:

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

如果你想选择id为不是的给定字符串(医生)的元素:

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

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

如果你想选择id为包含用空格分隔的给定单词 (医生)的元素:

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

如果你想选择id为等于一个给定的字符串或以该字符串开头,后跟一个连字符 (医生)的元素:

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

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

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


}
});
});

试试这个:

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


var test = $(this).find('[id*="_h"').val();

因为这是ASP。NET,你可以简单地使用ASP <%= %>标签打印生成的txtTitle的ClientID:

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

这将导致……

$('ctl00$ContentBody$txtTitle')

... 当页面呈现时。

注意:在Visual Studio中,智能感知会因为你在JavaScript中放入ASP标签而对你大喊大叫。您可以忽略这一点,因为结果是有效的JavaScript。