Извлечение чисел из родительского атрибута в jQuery

StackOverflow https://stackoverflow.com/questions/2124784

  •  22-09-2019
  •  | 
  •  

Вопрос

Нажав на "mylink", я хочу, чтобы ссылка была заменена номером "123", который извлекается из родительского тега.Я думаю, что я не делаю ".match(...." правильно.

jQuery - 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>
Это было полезно?

Решение

У вас есть только одно совпадение, поэтому вам нужно использовать 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);
  });
});

Если есть вероятность, что совпадения не произойдет, то вы хотели бы присвоить совпадения переменной и выполнять замену (ы) только в том случае, если совпадение происходит (переменная не равна нулю).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top