Pergunta

Ao clicar no "mylink", quero que o link seja substituído pelo número "123", que é extraído da etiqueta pai. Eu acho que não estou fazendo o "..

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>
Foi útil?

Solução

Você tem apenas uma correspondência, então precisa usar o 0º jogo (matriz baseada em zero). Além disso, ele retornará a partida inteira; portanto, se você quiser apenas o número, precisará remover o comment- texto disso.

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

Se houver a possibilidade de que nenhuma correspondência ocorra, você desejará atribuir as correspondências a uma variável e apenas faça a (s) substituição (s) se ocorrer uma correspondência (a variável não for anulada).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top