Селектор jQuery:Идентификатор заканчивается на?

StackOverflow https://stackoverflow.com/questions/609382

  •  03-07-2019
  •  | 
  •  

Вопрос

Есть ли какой-нибудь selector что я могу запрашивать элементы с идентификатором, который заканчивается заданной строкой?

Допустим, у меня есть элемент с идентификатором ctl00$ContentBody$txtTitle.Как я могу получить это, просто передав txtTitle?

Это было полезно?

Решение

Если вы знаете тип элемента, то:(например,:замените "элемент" на "div")

$("element[id$='txtTitle']")

Если вы не знаете тип элемента:

$("[id$='txtTitle']")

Доступна более подробная информация


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

Другие советы

Ответ на вопрос: $("[id$='txtTitle']"), как ответил Марк Херд , но для тех, кто, как и я, хотите найти все элементы с идентификатором, который начинается с заданной строки (например, txtTitle), попробуйте это ( doc ):

$("[id^='txtTitle']")

Если вы хотите выбрать элементы, идентификатор которых содержит заданную строку ( документ ):

$("[id*='txtTitle']")

Если вы хотите выбрать элементы, идентификатор которых не является данной строкой ( doc ):

$("[id!='myValue']")

(также соответствует элементам, которые не имеют указанного атрибута)

Если вы хотите выбрать элементы, идентификатор которых содержит данное слово, разделенное пробелами ( doc ):

$("[id~='myValue']")

Если вы хотите выбрать элементы, идентификатор которых равен заданной строке или начинается с этой строки, за которой следует дефис ( doc ):

$("[id|='myValue']")

Попробуй

$("element[id$='txtTitle']");

Редактировать:опоздание на 4 секунды :P

$('element[id$=txtTitle]')

Строго не нужно указывать фрагмент текста, с которым вы сопоставляете

Безопаснее добавить знак подчеркивания или $ к искомому термину, чтобы было меньше шансов найти совпадение с другими элементами, заканчивающимися тем же идентификатором:

$("element[id$=_txtTitle]")

(где element - это тип элемента, который вы пытаетесь найти - например, div, input и т. д.

(обратите внимание, вы предполагаете, что в ваших идентификаторах, как правило, есть знаки $, но я думаю, что .NET 2 теперь вместо этого использует подчеркивание в идентификаторе, поэтому в моем примере используется подчеркивание).

Пример:чтобы выбрать все <a>ы с идентификатором , оканчивающимся на _edit:

jQuery("a[id$=_edit]")

или

jQuery("a[id$='_edit']")

Поскольку это ASP.NET, вы можете просто использовать ASP <% =% > тег для печати сгенерированного ClientID из txtTitle:

$('<%= txtTitle.ClientID %>')

Это приведет к ...

$('ctl00$ContentBody$txtTitle')

... когда страница отображается.

Примечание. В Visual Studio Intellisense будет кричать на вас за размещение тегов ASP в JavaScript. Вы можете игнорировать это, так как в результате вы получите правильный JavaScript.

Попробуйте это:

<asp:HiddenField ID="0858674_h" Value="0" runat="server" />

var test = $(this).find('[id*="_h"').val();

Чтобы найти идентификатор iframe, заканчивающийся на " iFrame " на странице, содержащей много фреймов.

jQuery(document).ready(function (){     
                  jQuery("iframe").each(function(){                     
                    if( jQuery(this).attr('id').match(/_iFrame/) ) {
                            alert(jQuery(this).attr('id'));

                     }                   
                  });     
         });
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top