Найти все элементы на странице, чей идентификатор элемента содержит определенный текст, используя jQuery
Вопрос
Я пытаюсь найти все элементы на странице, идентификатор элемента которых содержит определенный текст. Затем мне нужно будет отфильтровать найденные элементы в зависимости от того, скрыты они или нет. Любая помощь очень ценится.
Решение
$('*[id*=mytext]:visible').each(function() {
$(this).doStuff();
});
Обратите внимание, что звездочка '*' в начале селектора соответствует всем элементам . р>
См. Атрибут содержит селекторы , а также : visible и : скрытые селекторы.
Другие советы
Если вы найдете Содержит , то это будет так
$("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
});
Если вы хотите выбрать элементы,
$("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
});
При этом выбираются все DIV с идентификатором, содержащим 'foo' и видимым
$("div:visible[id*='foo']");
Спасибо вам обоим. Это прекрасно сработало для меня.
$("input[type='text'][id*=" + strID + "]:visible").each(function() {
this.value=strVal;
});