2010-01-23 13 views
0

En cliquant sur "mylink", je veux que le lien soit remplacé par le nombre "123", qui est extrait de la balise parent. Je pense que je ne fais pas le ".match (...." droitExtraire des nombres de l'attribut parent dans 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

Pourquoi pensez-vous cela? – Guffa

+0

Qu'est-ce qui se passe? –

+0

Chaque fois que je clique sur le lien, il ne fait rien, comme s'il y avait une erreur – timofey

Répondre

0

Vous avez seulement un correspondant si vous avez besoin Pour utiliser la 0ème correspondance (tableau de base zéro), elle renverra la totalité de la correspondance, donc si vous ne voulez que le numéro, vous devrez en retirer le texte 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); 
    }); 
}); 

S'il y a une possibilité qu'aucune correspondance ne se produise, alors vous voudriez assigner les correspondances à une variable et seulement faire le (s) remplacement (s) si une correspondance se produit (la variable est non nulle).

+0

Oui, ça l'a fait, je travaillais juste en Drupal, donc j'ai dû réécrire les parenthèses. .replace ('comment-', ''); devrait être .replace ("comment-", ""); Merci – timofey

+0

J'ai utilisé des guillemets simples pour les deux, mais aussi des guillemets. – tvanfosson