【问题标题】:Extracting numbers from the parent attribute in jQuery从jQuery中的父属性中提取数字
【发布时间】:2010-01-23 21:20:55
【问题描述】:

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

【问题讨论】:

  • 当我点击链接时,它什么也不做,好像有错误一样
  • 如果我在没有 ".match(/comment-([0-9]+)/)[1]" 的情况下输入它,它将用整个 attr "comment comment-123 ct" 替换链接.但我只想要数字 123,而不是整个 attr。

标签: jquery attributes match attr


【解决方案1】:

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

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

【讨论】:

  • 是的,它做到了,我只是在drupal中工作,所以不得不重写括号。 .replace('comment-','');应该是 .replace("comment-","");谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
相关资源
最近更新 更多