jQuery选择器:Id结束了吗?

Jos*_*ola 384 jquery jquery-selectors

有没有selector我可以查询ID以给定字符串结尾的元素?

假设我有一个id为的元素ctl00$ContentBody$txtTitle.我怎么能通过传递来获得这个txtTitle

Mar*_*urd 616

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

$("element[id$='txtTitle']")
Run Code Online (Sandbox Code Playgroud)

如果您不知道元素类型:

$("[id$='txtTitle']")
Run Code Online (Sandbox Code Playgroud)

更多信息


// the old way, needs exact ID: document.getElementById("hi").value = "kk";
$(function() {
  $("[id$='txtTitle']").val("zz");
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="ctl_blabla_txtTitle" type="text" />
Run Code Online (Sandbox Code Playgroud)

  • 一个匿名用户只是试图编辑以下内容.将其添加为注释(因为它似乎有意义):这不会给出以id txtTitle结尾的元素.这是文档:http://api.jquery.com/element-selector/ ..element selector等同于getElementsByTagName.它与元素的id无关.如果你想访问以id结尾的元素,那么使用这个语法$("[id $ ='txtTitle']")或者你知道元素的类型..eg div ..然后使用这个语法$("div [ID $ = 'txtTitle']") (11认同)
  • 我会寻找它以'$ txtTitle'结尾.使用'txt'前缀的风险并不大,但如果你的选择器是'NameTextBox',它将匹配'NameTextBox','FirstNameTextBox',LastNameTextBox'等. (10认同)

Rom*_*oux 246

这个问题的答案是$("[id$='txtTitle']"),正如Mark Hurd所回答的那样,但是对于那些像我一样想要找到所有带有以给定字符串开头的id的元素(例如txtTitle)的人,试试这个(doc):

$("[id^='txtTitle']")
Run Code Online (Sandbox Code Playgroud)

如果要选择id 包含给定字符串(doc)的元素:

$("[id*='txtTitle']")
Run Code Online (Sandbox Code Playgroud)

如果要选择id 不是给定字符串(doc)的元素:

$("[id!='myValue']")
Run Code Online (Sandbox Code Playgroud)

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

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

$("[id~='myValue']")
Run Code Online (Sandbox Code Playgroud)

如果要选择id 等于给定字符串的元素,或者以该字符串后跟连字符(doc)开头:

$("[id|='myValue']")
Run Code Online (Sandbox Code Playgroud)

  • 好的指示! (2认同)
  • @AlanMacdonald我不确定添加它是否正确.在答复被接受后很长一段时间我回答了这个问题,只是为了给访问者添加更多信息.我希望那些赞成我答案的人也能回答这个问题的答案. (2认同)

kky*_*kyy 32

尝试

$("element[id$='txtTitle']");
Run Code Online (Sandbox Code Playgroud)

编辑:迟到4秒:P


Sco*_*den 30

$('element[id$=txtTitle]')
Run Code Online (Sandbox Code Playgroud)

引用您要匹配的文本片段并不是绝对必要的

  • 这应该是正确答案!使用 " 和 ' 只会令人困惑。 (2认同)

小智 13

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

$("element[id$=_txtTitle]")
Run Code Online (Sandbox Code Playgroud)

(其中element是您要查找的元素类型 - 例如div,input等等.

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