2009-09-30 14 views
7

Chciałbym przekazać identyfikator elementu do funkcji, która następnie wywołuje jQuery. Jednak jestem zaskoczony, jak faktycznie wziąć zmienną ID i połączyć ją z innym tekstem w oświadczeniu jQuery. Na przykład, to zwraca błąd:jQuery przekazuje identyfikator elementu do instrukcji jquery?

myFunction("#myObject"); 

function myFunction(IDofObject){ 

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

} 

chciałbym zrobić coś z „#myObject img”, ale nie można tego do pracy wewnątrz rachunku.

Odpowiedz

25

Nie owijać parametru w cudzysłowie:

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

Ponadto, można rozważyć dodanie znaku hash wewnątrz funkcji, dzięki czemu można go przekazywać rzeczywisty identyfikator, a nie wyboru.

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

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

Uderzyłeś mnie w to! ;) –

2
myFunction("#myObject"); 

function myFunction(IDofObject){ 

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

} 

Spróbuj tego.

0

Ugh. jeden z tych '2 sekundy po zadać dowiedzieć ...' pytania:

function myFunction(IDofObject){ 

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

} 
0

Wystarczy zrobić this--

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

Albo nawet

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

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

Chyba Lepsze ponowne wykorzystanie, jeśli jako parametr zostanie przekazany cały selektor, pamiętając, że jQuery niejawnie iteruje po wszystkich dopasowanych elementach. Dla prymitywny przykład:

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

Kiedy przycisk jest kliknąć następnie dostać przycisk id które później użyć, aby uzyskać jego dane polu, naciskając + operatorowi dynamiczna zmiana 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); 
 
     
 
    })

Powiązane problemy