2010-01-23 13 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