2010-05-21 4 views
1

J'ai une liste d'articlessélecteur JQuery: passer id de tableau en fonction

<div id="item1">somestuff</div> 
<div id="item2">somestuff</div> 
<div id="item3">somestuff</div> 

Quand quelqu'un clique sur un de ceux-ci, je dois prendre des actions basées sur l'identifiant (le nombre). Disons le cacher.

Comment puis-je rendre la fonction générique, et comment puis-je passer l'ID dans la fonction?

$(document).ready(function() 
{ 
$("#item-howcanImakethisselectorgeneric?").click(function() { 
    $("#item-andhowcanIpasshteidintohere?").hide(); 
} 
} 

Je suis un débutant javascript/jquery, toute aide (y compris RTFM) apprécié.

Répondre

1
<div id="item1" class="mygenericClass">somestuff</div> 

<div id="item2" class="mygenericClass">somestuff</div> 

<div id="item3" class="mygenericClass">somestuff</div> 
$(document).ready(function() 
{ 
    $(".mygenericClass").click(function() { 
    //if you want the id then $(this).id 
    //if you just want to hide the clicked element then 
    $(this).hide(); 
    }); 
} 
+0

Parfait. Comment puis-je obtenir l'ID sans le texte "article", à savoir. juste le numéro? – PeterV

+1

var justTheNumber = ($ (this) .id) .replace ("item", "") –

0

essayez ceci:

<div id="item1" class="stuff">somestuff</div> 
<div id="item2" class="stuff">somestuff</div> 
<div id="item3" class="stuff">somestuff</div> 

JS:

$(document).ready(function() 
{ 
    $("#item1, #item2, #item3").click(function() { 
    $(this).hide(); 
    } 
} 

ou encore mieux:

$(document).ready(function() 
{ 
    $("div.stuff").click(function() { 
    $(this).hide(); 
    } 
} 

ou si vous allez ajouter dynamiquement plus divs dans la page après le chargement et ne souhaite pas ajouter explicitement les gestionnaires d'événements

$(document).ready(function() 
{ 
    $("div.stuff").live("click", function() { 
    $(this).hide(); 
    } 
} 
+0

si vous avez besoin pour obtenir le texte de l'identifiant dans la fonction, vous pouvez utiliser « this.id » – puffpio

+0

génial. Et pour obtenir seulement le nombre, donc pas "item1" mais juste "1"? – PeterV

Questions connexes