【发布时间】:2010-03-01 15:25:05
【问题描述】:
好的,我所追求的很简单。 我有多个无线电组集的单击处理程序。在处理程序内部,我将一些参数传递给函数参数引用相对于组集,但它们的路径是相同的。所以我基本上有:
$(document).ready(function(){
$("input[name='radioGroup1']").click(function(){
updateWalletInfo(
$(this).val(),
$(this).parent().parent().find(".cSec .f_class a").text(),
$(this).parent().parent().parent().find(".cSec .flight-time").text(),
$(this).parent().parent().parent().find(".cSec .city").text(),
);
});
$("input[name='radioGroup2']").click(function(){
updateWalletInfo(
$(this).val(),
$(this).parent().parent().find(".cSec .f_class a").text(),
$(this).parent().parent().parent().find(".cSec .flight-time").text(),
$(this).parent().parent().parent().find(".cSec .city").text(),
);
});
});
我想要做的是保存对$(document).ready() 下特定项目的引用,这样如果我更改路径,我就不必在每个处理程序中更改它。就像我追求的是这样的:
$(document).ready(function(){
var value = $(this).val();
var f_class = $(this).parent().parent().find(".cSec .f_class a").text();
var f_time =$(this).parent().parent().parent().find(".cSec .flight-time").text();
var f_city = $(this).parent().parent().parent().find(".cSec .city").text();
$("input[name='radioGroup1']").click(function(){
updateWalletInfo(value,f_class,f_time,f_city);
});
$("input[name='radioGroup2']").click(function(){
updateWalletInfo(value,f_class,f_time,f_city);
});
});
我知道 this 运算符不会在那里工作,但我认为这让我的观点更清楚。如果我只能删除 .parent().parent().find(".cSec .????").text() 位的冗余,我什至很高兴。
【问题讨论】:
标签: jquery reference jquery-selectors