Селектор jQuery:Идентификатор заканчивается на?
-
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'));
}
});
});