0

通过单击“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>
4

1 回答 1

0

您只有一个匹配项,因此您需要使用第 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);
  });
});

如果有可能不会发生匹配,那么您希望将匹配项分配给一个变量,并且仅在发生匹配项时才进行替换(变量非空)。

于 2010-01-23T21:34:26.213 回答