此函数连接动态控件的第四个实例(带有select all / unselect all按钮的ListBox):
function pageLoad() {
$('#MainContent_lbx4_AllLB').live("click", function () {
$('#MainContent_lbx4_RegionTypeLB').find('option').attr('selected', true);
});
$('#MainContent_lbx4_NoneLB').live("click", function () {
$('#MainContent_lbx4_RegionTypeLB').find('option').attr('selected', false);
});
}
我工作,但就像我提到的,它只适用于第四个实例。我如何能够在页面上找到它们中有多少,并使用该数字循环并连接它们?
答案 0 :(得分:1)
听起来你需要看一下使用高级选择器 - http://api.jquery.com/category/selectors/
如果所有列表框ID都相似,您可以像这样使用某些
$("[id^='MainContent_lbx')
这将定位ID为“MainContent_lbx”的所有元素
答案 1 :(得分:1)
您可以修改以下活动。这适用于您控件的所有实例
$('[id^=MainContent_lbx]').live("click", function () {
//split by underscore
var main_id = $(this).prop('id').split('_');
//pop last element in the array to check for AllLB or NoneLB
var popLast = main_id.pop();
//replace AllLB or NoneLB with RegionTypeLB
main_id[2] = 'RegionTypeLB';
var regionId = '#' + main_id.join('_');
if(popLast == 'AllLB')
{
$(regionID).find('option').attr('selected', true);
}
else if(popLast == 'NoneLB')
{
$(regionID).find('option').attr('selected', false);
}
});
从 jquery Documentation ,从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。旧版jQuery的用户应该使用.delegate()而不是.live()。它已在jQuery 1.9中删除