Извлечение чисел из родительского атрибута в jQuery - PullRequest
0 голосов
/ 24 января 2010

Нажав на «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);
  });
});

HTML:

<div class="comment comment-123 ct">
  <div class="link">mylink</div>
</div>

1 Ответ

0 голосов
/ 24 января 2010

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

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

...