محدد مسج:معرف ينتهي ب؟
-
03-07-2019 - |
سؤال
هل يوجد selector
هل يمكنني الاستعلام عن العناصر ذات المعرف الذي ينتهي بسلسلة معينة؟
لنفترض أن لدي عنصرًا بمعرف ctl00$ContentBody$txtTitle
.كيف يمكنني الحصول على هذا عن طريق المرور فقط txtTitle
?
المحلول
إذا كنت تعرف نوع عنصر ثم: (على سبيل المثال: استبدال 'العنصر' مع 'شعبة')
$("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)، جرب هذا (وثيقة) :
$("[id^='txtTitle']")
إذا كنت تريد تحديد العناصر التي id يتضمن سلسلة معينة (وثيقة) :
$("[id*='txtTitle']")
إذا كنت تريد تحديد العناصر التي id ليس سلسلة معينة (وثيقة) :
$("[id!='myValue']")
(يطابق أيضًا العناصر التي لا تحتوي على السمة المحددة)
إذا كنت تريد تحديد العناصر التي id يحتوي على كلمة معينة، محددة بمسافات (وثيقة) :
$("[id~='myValue']")
إذا كنت تريد تحديد العناصر التي هو معرف يساوي سلسلة معينة أو يبدأ بهذه السلسلة متبوعة بواصلة (وثيقة) :
$("[id|='myValue']")
وحاول
$("element[id$='txtTitle']");
وتحرير: 4 ثوان في وقت متأخر: P
$('element[id$=txtTitle]')
وانها ليست بدقة الضروري أن أقتبس جزء النص الذي مطابقة ضد
وانها أكثر أمانا لإضافة تسطير أو $ لمصطلح كنت تبحث عن ذلك فمن غير المرجح أن تطابق العناصر الأخرى التي تنتهي في نفس ID:
$("element[id$=_txtTitle]")
(حيث <م> العنصر م> هو نوع من عنصر كنت في محاولة للعثور - على سبيل المثال div
، input
الخ
و(لاحظ، أنت تقترح معرفات بك تميل إلى أن تكون علامات $ في نفوسهم، ولكن أعتقد. NET 2 يميل الآن إلى استخدام أحرف (_) في ID بدلا من ذلك، بحيث يستخدم بلدي على سبيل المثال تسطير).
وعلى سبيل المثال:
لتحديد كافة <a>
s مع ID تنتهي في _edit:
jQuery("a[id$=_edit]")
أو
jQuery("a[id$='_edit']")
وبما أن هذا هو ASP.NET، يمكنك ببساطة استخدام ASP <٪ =٪> العلامة لطباعة ClientID ولدت من txtTitle:
$('<%= txtTitle.ClientID %>')
وسوف ينتج عن هذا ...
$('ctl00$ContentBody$txtTitle')
... عندما يتم تقديم الصفحة.
ملحوظة: في Visual Studio، والتحسس يصيح في لكم لطرح علامات ASP في جافا سكريبت. يمكنك تجاهل هذا الأمر والنتيجة هي جافا سكريبت صالح.
وجرب هذا:
<asp:HiddenField ID="0858674_h" Value="0" runat="server" />
var test = $(this).find('[id*="_h"').val();
في أجل إيجاد هوية IFRAME تنتهي ب "الإطار من" داخل صفحة تحتوي على العديد من نوافذ الأطر المدمجة.
jQuery(document).ready(function (){
jQuery("iframe").each(function(){
if( jQuery(this).attr('id').match(/_iFrame/) ) {
alert(jQuery(this).attr('id'));
}
});
});