【问题标题】:jQuery passing element ID into jquery statement?jQuery将元素ID传递给jquery语句?
【发布时间】:2010-12-02 18:10:18
【问题描述】:
我想将一个元素的 ID 传递给一个调用 jQuery 的函数。但是,对于如何实际获取 ID 变量并将其与 jQuery 语句中的其他文本连接起来,我感到很困惑。例如,这会返回一个错误:
myFunction("#myObject");
function myFunction(IDofObject){
$("'"+IDofObject+" img'").doSomething...
}
我想用 '#myObject img' 做一些事情,但不能让它在语句中起作用。
【问题讨论】:
标签:
jquery
variables
concatenation
【解决方案1】:
当按钮被点击时,它会得到按钮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);
})
【解决方案2】:
如果你将整个选择器作为参数传递,我认为你会得到更好的重用,记住 jQuery 隐式迭代所有匹配的元素。举个简单的例子:
function hideImageDescendants(selector){
$(selector).find("img").hide();
}
【解决方案3】:
就这样做--
myfunction('obj')
function myfunction(obj){
$('#'+obj+' img').show();
}
或者,甚至
myfunction($('#2 img a'));
myfunction(jqobj){
jqobj.show();
}
【解决方案4】:
呃。那些“在你问你弄清楚......后 2 秒”的问题之一:
function myFunction(IDofObject){
$(IDofObject+" img").doSomething...
}
【解决方案5】:
不要将参数用引号引起来:
function myFunction(IDofObject) {
$( IDofObject + " img" ).doSomething();
}
此外,您可能需要考虑在函数中添加哈希字符,以便您可以将实际 id 传递给它,而不是选择器。
myFunction( $('.classSelector :first').attr('id') );
function myFunction(IDofObject) {
$( "#" + IDofObject + " img" ).doSomething();
}
【解决方案6】:
myFunction("#myObject");
function myFunction(IDofObject){
$(IDofObject+" img").doSomething...
}
试试看。