2009-09-30 4 views
7

Je voudrais passer l'ID d'un élément dans une fonction qui appelle ensuite jQuery. Cependant, je suis perplexe quant à la manière de prendre la variable ID et de la concaténer avec un autre texte dans l'instruction jQuery. Par exemple, cela renvoie une erreur:jQuery passant l'ID de l'élément dans l'instruction jquery?

myFunction("#myObject"); 

function myFunction(IDofObject){ 

    $("'"+IDofObject+" img'").doSomething... 

} 

Je voudrais faire quelque chose avec « #myObject img » mais ne peut pas obtenir que pour travailler dans l'instruction.

Répondre

25

Ne pas enrouler le paramètre entre guillemets:

function myFunction(IDofObject) { 
    $(IDofObject + " img").doSomething(); 
} 

En outre, vous voudrez peut-être envisager d'ajouter le caractère de hachage dans la fonction afin que vous puissiez passer l'ID réel, pas un sélecteur.

myFunction($('.classSelector :first').attr('id')); 

function myFunction(IDofObject) { 
    $("#" + IDofObject + " img").doSomething(); 
} 
+1

Tu m'as battu dessus! ;) –

2
myFunction("#myObject"); 

function myFunction(IDofObject){ 

    $(IDofObject+" img").doSomething... 

} 

Essayez-le.

0

Ugh. un de ces '2 secondes après que vous vous demandez à comprendre ...' questions:

function myFunction(IDofObject){ 

    $(IDofObject+" img").doSomething... 

} 
0

Il suffit de faire this--

myfunction('obj') 
function myfunction(obj){ 
$('#'+obj+' img').show(); 
} 

Ou, même

myfunction($('#2 img a')); 

myfunction(jqobj){ 
jqobj.show(); 
} 
1

Je pense que vous Si vous transmettez un sélecteur entier en paramètre, souvenez-vous que jQuery itère implicitement sur tous les éléments correspondants. Pour un exemple rudimentaire:

function hideImageDescendants(selector){ 
    $(selector).find("img").hide(); 
} 
0

Lorsque le bouton est cliquez ensuite obtenir l'ID de bouton que je l'utilise plus tard pour obtenir ses données sur le terrain, utilisez + opérateur id changement dynamique

$('.btnsave').click(function() 
 
    { 
 
     btnvalue = $(this).val(); 
 
     //alert(btnvalue); 
 
     adjust_value = $('#adjust_value'+btnvalue).val(); 
 
     ado = $('#ado'+btnvalue).val(); 
 
     amount = $('#amount'+btnvalue).val(); 
 
     description = $('#description'+btnvalue).val(); 
 
     //alert(adjust_value+ado+amount+description); 
 
     
 
    })