2009-07-30 2 views
86

Я пытаюсь найти все элементы на странице, чей идентификатор элемента содержит определенный текст. Затем мне нужно будет отфильтровать найденные элементы на основе того, скрыты они или нет. Любая помощь приветствуется.Найти все элементы на странице, чей идентификатор элемента содержит определенный текст, используя jQuery

+0

возможно дубликат [JQuery селектор регулярных выражений] (http://stackoverflow.com/questions/190253/jquery-selector-regular-expressions) –

ответ

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

Примечание звездочка '*' в начале селектора matches all elements.

См. Attribute Contains Selectors, а также :visible и :hidden селекторы.

+8

Может стоит отметив, что при сопоставлении с элементом 'id' вы не используете кавычки, где при сопоставлении с' именем' вы делаете. '$ ('* [name * =" myname "]: visible')' Не самый интуитивный и догнал меня раньше. – ficuscr

14

Это выбирает все DIVs с идентификатором, содержащим «Foo» и которые видны

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

Если im ищет элементы текстового поля, а не divs, это просто $ ("input: visible [id * = 'foo']"); ? – user48408

+0

это будет $ ("input [type = 'textbox'] [id * = 'foo']: visible") – karim79

+1

@ port-zero - одиночные кавычки вокруг 'foo' не нужны – karim79

5

Благодаря вам обоим. Это отлично сработало для меня.

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

Если вы обретение Содержит, то это будет как этот

$("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 
    }); 

Если вы хотите, чтобы выбрать элементы, которые идентификатор не является данная строка

$("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 равно заданному значению s Тринг или начиная с этой строки с последующим дефисом

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