是否有一个选择器,我可以查询元素的ID,以给定的字符串结束?

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


当前回答

问题的答案是$("[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]')

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

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

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

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

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

试试这个:

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

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

问题的答案是$("[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']")

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

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

如果你不知道元素类型:

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

更多资料


//旧的方法,需要精确的ID: document.getElementById("hi")。Value = "kk"; $(函数(){ $(“[id = ' txtTitle ']美元”).val(“zz”); }); < script src = " https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js " > < /脚本> <input id="ctl_blabla_txtTitle" type="text" />