أين هو خطأ JQuery هذا؟
-
08-07-2019 - |
سؤال
أريد إضافة حدث النقر إلى جميع العناصر حيث يكون `id = "violacao":
$(document).ready(function () {
jQuery('#violacao').click(function() {
alert('teste');
});
});
لكن الرابط الأول فقط يستجيب للنقرة.هذا هو HTML الذي تم إنشاؤه:
<tr>
<td><a href="#" id="violacao">40954589</a></td>
<td>Perda de Comunicação</td>
</tr>
<tr>
<td><a href="#" id="violacao">88692020503</a></td>
<td>Perda de Comunicação</td>
</tr>
عندما أحاول بهذه الطريقة:
jQuery("a").click(function() {
alert('teste');
});
يعمل بشكل جيد، باستثناء أن جميع الروابط تتأثر.ما الخطأ؟
المحلول
والمقصود معرفات في HTML لتكون فريدة من نوعها (واحد لكل وثيقة). تغيير الهوية لفئة (واستخدامها. بدلا من #)، وأنه يجب أن تعمل.
نصائح أخرى
في حين أن ما يقوله ستيف ماسون صحيح، فإن المشكلة الفعلية ليست ذلك.
إذا قمت بتغيير المعرف إلى فصل دراسي، فستستمر المشكلة:سوف تتأثر كافة الروابط.
بدلاً من ذلك، إذا كنت تهدف إلى التأثير على <A> واحد، فيجب عليك القيام بأحد الإجراءات التالية:
أ) قم بتعيين معرفات فريدة لكل <A>، ثم افعل شيئًا كما كنت تفعل أولاً؛أو
ب) قم بتعيين الفئات واستخدم المحدد الأول:
jQuery("a.violacao:first").click( function (){
alert('teste');
} );
سينطبق ذلك على المرساة المطابقة الأولى مع فئة الكمان.وبدلاً من ذلك، إذا كنت تريد التأثير على نقطة ارتساء معينة، فيمكنك استخدام :eq(index).
للحصول على قائمة شاملة للمحدد، قم بزيارة http://docs.jquery.com/Selectors.