2009-09-30 30 views
7

我想将元素的ID传递给一个函数,然后调用jQuery。但是,我很难理解如何实际使用ID变量,并将它与jQuery语句中的其他文本连接起来。例如,这将返回一个错误:jQuery将元素ID传递给jquery语句?

myFunction("#myObject"); 

function myFunction(IDofObject){ 

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

} 

我愿意做“#myObject IMG”的东西,但不能获取到语句内工作。

回答

25

不自动换参数报价:

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

此外,您可能需要考虑增加函数内部的哈希字符,所以你可以通过它的实际ID,而不是一个选择。

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

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

你打败了我! ;) –

2
myFunction("#myObject"); 

function myFunction(IDofObject){ 

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

} 

试试看。

0

呃。这些一个“2秒后你问你找出...提问:

function myFunction(IDofObject){ 

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

} 
0

只是做this--

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

或者,甚至

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

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

我想你如果您将整个选择器作为参数传递,则会得到更好的重用,记住jQuery会隐式地遍历所有匹配的元素。对于一个基本的例子:

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

当按钮被点击则获得按钮的ID,我后来用它来得到它的现场数据,使用+运算符来动态改变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); 
 
     
 
    })