使用jQuery查找元素ID包含特定文本的页面上的所有元素

时间:2009-07-30 13:49:10

标签: jquery search filter find wildcard

我正在尝试查找页面上元素ID包含特定文本的所有元素。然后,我需要根据它们是否隐藏来过滤找到的元素。非常感谢任何帮助。

4 个答案:

答案 0 :(得分:176)

$('*[id*=mytext]:visible').each(function() {
    $(this).doStuff();
});

请注意选择器matches all elements开头的星号'*'。

请参阅Attribute Contains Selectors以及:visible:hidden选择器。

答案 1 :(得分:116)

如果您通过包含找到,那么它就像这样

    $("input[id*='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果您通过开头找到,那么它就会像这样

    $("input[id^='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果您通过结束找到,那么它将会是这样的

     $("input[id$='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果要选择 id不是给定字符串

的元素
    $("input[id!='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

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

     $("input[id~='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

如果要选择 id等于给定字符串或以该字符串后跟连字符

开头的元素
     $("input[id|='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

答案 2 :(得分:17)

这将选择ID为'foo'且可见的所有DIV

$("div:visible[id*='foo']");

答案 3 :(得分:6)

感谢你们两位。这对我很有用。

$("input[type='text'][id*=" + strID + "]:visible").each(function() {
    this.value=strVal;
});