Я пытаюсь найти все элементы на странице, идентификатор элемента которой содержит определенный текст. Затем мне нужно будет отфильтровать найденные элементы в зависимости от того, скрыты они или нет. Любая помощь приветствуется.
Я пытаюсь найти все элементы на странице, идентификатор элемента которой содержит определенный текст. Затем мне нужно будет отфильтровать найденные элементы в зависимости от того, скрыты они или нет. Любая помощь приветствуется.
Ответы:
$('*[id*=mytext]:visible').each(function() {
$(this).doStuff();
});
Обратите внимание, что звездочка «*» в начале селектора соответствует всем элементам .
См. Раздел « Атрибут содержит селекторы» , а также селекторы : visible и : hidden .
id
вы не используете кавычки, тогда как при сопоставлении с элементом вы используете name
. $('*[name*="myname"]:visible')
Не самый интуитивный и догонял меня раньше.
Если вы найдете по Contains, то это будет так
$("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
});
Если вы найдете по Ends With, то это будет так
$("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[name~='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']");
$(this)[0].innerText