Frage

Mit einem Klick auf den „mylink“ Ich möchte, dass die Verbindung durch die Zahl „123“ ersetzt werden, die aus übergeordneten Tag extrahiert wird. Ich glaube, ich bin nicht das „.match (....“ richtig machen.

jQuery:

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

html:

<div class="comment comment-123 ct">
  <div class="link">mylink</div>
</div>
War es hilfreich?

Lösung

Sie haben nur eine passende, damit Sie das 0-te Spiel verwenden müssen (Null-basierte Array). Außerdem wird das gesamte Spiel zurückkehren, wenn Sie also nur die Zahl wollen Sie den comment- Text von ihm entfernen müssen.

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

Wenn es eine Möglichkeit gibt, dass keine Übereinstimmung auftritt, dann würden Sie die Spiele zu einer Variablen zugewiesen werden sollen und nicht nur den Ersatz (n), wenn eine Übereinstimmung auftritt (die Variable ist nicht null).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top