2010-01-23 14 views
0

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

你为什么这么想? – Guffa 2010-01-23 21:25:46

+0

会发生什么? – 2010-01-23 21:30:26

+0

每当我点击链接时,它什么都不做,就好像有一个错误 – timofey 2010-01-23 21:34:26

回答

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); 
    }); 
}); 

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

+0

是的,这是做的,我只是在drupal工作,所以不得不重写括号。 .replace( 'comment-', '');应该是.replace(“comment-”,“”);谢谢 – timofey 2010-01-23 21:41:10

+0

我用两个单引号,但双引号也适用。 – tvanfosson 2010-01-23 23:12:22