سؤال

من خلال النقر على "myLink" ، أريد استبدال الرابط بالرقم "123" ، الذي يتم استخلاصه من علامة الأصل. أعتقد أنني لا أفعل ".match (...." صحيح.

jQuery:

$(document).ready(function(){
  $(".link").click(function(){
    var comid = $(this).parents("div.comment").attr("class").match(/comment-([0-9]+)/)[1];
    $(".link").replaceWith(comid);
  });
});

لغة البرمجة:

<div class="comment comment-123 ct">
  <div class="link">mylink</div>
</div>
هل كانت مفيدة؟

المحلول

لديك مطابقة واحدة فقط ، لذا تحتاج إلى استخدام المباراة 0 (صفر قائم على الصفر). أيضًا ، سيعود المباراة بأكملها ، لذلك إذا كنت تريد فقط الرقم ، فستحتاج إلى إزالة comment- نص منه.

$(document).ready(function(){
  $(".link").click(function(){
    var comid = $(this).parents("div.comment")
                       .attr("class")
                       .match(/comment-[0-9]+/)[0]
                       .replace('comment-','');
    $(".link").replaceWith(comid);
  });
});

إذا كان هناك احتمال عدم حدوث أي تطابق ، فأنت تريد تعيين المباريات لمتغير ولا تفعل سوى الاستبدال (s) في حالة حدوث تطابق (المتغير غير مميز).

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