2009-09-30 3 views
7

Vorrei passare l'ID di un elemento in una funzione che chiama jQuery. Tuttavia, sono perplesso su come effettivamente prendere la variabile ID e concatenarlo con un altro testo all'interno dell'istruzione jQuery. Ad esempio, questo restituisce un errore:jQuery passaggio ID elemento in istruzione jquery?

myFunction("#myObject"); 

function myFunction(IDofObject){ 

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

} 

mi piacerebbe fare qualcosa con '#myObject img', ma non riesco a ottenere quello per funzionare all'interno della dichiarazione.

risposta

25

Non avvolgere il parametro tra virgolette:

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

Inoltre, si può prendere in considerazione l'aggiunta del carattere hash all'interno della funzione in modo da poter passare l'id reale, non un selettore.

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

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

Mi hai battuto! ;) –

2
myFunction("#myObject"); 

function myFunction(IDofObject){ 

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

} 

Provalo.

0

Ugh. uno di quei '2 secondi dopo che chiediamo a capire ...' domande:

function myFunction(IDofObject){ 

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

} 
0

Basta fare questo--

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

O, ancora

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

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

ti penso Riuscire a riutilizzare meglio se si passasse un intero selettore come parametro, ricordando che jQuery esegue iterazioni implicite su tutti gli elementi corrispondenti. Per un esempio rudimentale:

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

Quando il pulsante è cliccare allora ottenere l'ID pulsante che poi lo uso per ottenere che sia i dati del campo, l'uso + all'operatore di cambiamento dinamico id

$('.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); 
 
     
 
    })