سؤال

هل يوجد 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'));

                     }                   
                  });     
         });
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top