2009-06-14 5 views
0

J'ai une fonction jquery (de « noteur ») que j'appelle ainsi:Comment obtenir l'ID du div dont la fonction a été appelée depuis jQuery?

<div id="someID"></div> 

<script type="text/javascript"> 
    $('#someID').rater({options}); 
</script> 

Je veux obtenir l'ID (« someID » dans ce cas) alors je peux l'utiliser dans la fonction comme variable.

Puis-je utiliser dans quelque chose comme ceci:

if (??? == 'someID') { do something } 

Comment puis-je faire ??

Répondre

5

Récupération du sélecteur utilisé pour appeler le plugin:

jQuery.fn.myPlugin = function() { 
    alert(this.selector); 
}; 

Vous pouvez accéder au sélecteur comme une propriété de l'objet jQuery.

Donc, si j'ai appelé le plugin comme ceci:

$('div #something').myPlugin(); 

Puis "div #something" serait alertée.


Récupération ID d'un élément à l'intérieur d'un plug-in:

jQuery.fn.myPlugin = function() { 
    alert(this.attr('id')); 
}; 
+5

+1 Cette question s'est transformée en un cirque rapide. –

+2

Matt, de quoi parlez-vous?La réponse que vous avez posté à l'origine était 100% incorrecte et était simplement trompeuse - la réponse que j'ai posté fonctionne ... Si vous pensez vraiment qu'ils sont "fonctionnellement équivalents" alors vous devez apprendre l'API de jQuery correctement. – James

+2

Mes excuses, j'ai évidemment complètement raté le point :) – Matt

1

Vous cherchez selector?

Après avoir lu votre nouveau question éditée, il semble que si vous voulez que la chaîne de l'identifiant passé à travers.

<div id="someID"></div> 

<script type="text/javascript"> 
    $("#someID").rater({options},$("#someID").selector); 
</script> 

Par souci d'efficacité, vous pouvez stocker le $ (« # someID ») hors d'une variable si vous aimez si vous ne le faites une fois la requête.

+0

Je pense oui .. Comment je l'utilise? – Jonathan

+0

Il y a des exemples sur la page à laquelle je suis lié. – Nosredna

+0

Je veux dire, j'ai besoin de vérifier si le 'sélecteur' est == à quelque chose .. si (sélecteur == 'un texte') {faire quelque chose} – Jonathan

4

Je ne sais pas pourquoi vous essayez de le faire, mais ...

// create jQuery plugin method: "rater" 
jQuery.fn.rater = function() 
{ 
    // `this` is a jQuery object: process each matched element 
    return this.each(function() 
    { 
    // `this` is a single matched element. Process it, somehow... 
    if (this.id == "someID") 
    { 
     // do something special 
    } 

    // normal rater logic, whatever that might be 
    }); 
}; 
0
if($(this).attr('id') == 'someID') { 
    // do stuff 
} 
1

Cela va chercher le plus proche "div" appelé, puis obtenir son attribut.

if ($(this).closest("div").attr("id") == "someId") { 
    // do stuff 
} 
Questions connexes