冷凝jquery编号函数

时间:2013-02-28 23:33:00

标签: jquery function

我确定这可能已经得到了回答,但我不太清楚我在问这个问题,如果你能指出我正确的方向,那将是非常苛刻的。

好的,所以我有一个功能,除了身份证号码之外的所有人都是相同的,最多30个

有没有办法可以做到这一点,而不是重复30次

以下示例

$('ul#grid li#project_001 a').click(function(){ 
$('.colOne').html(ajax_load).load('ajax/project_001.html');
}); 

$('ul#grid li#project_002 a').click(function(){ 
$('.colOne').html(ajax_load).load('ajax/project_002.html');
});

$('ul#grid li#project_003 a').click(function(){ 
$('.colOne').html(ajax_load).load('ajax/project_003.html');
}); 

$('ul#grid li#project_004 a').click(function(){ 
$('.colOne').html(ajax_load).load('ajax/project_004.html');
});

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

这样的事情会起作用:

$('#grid li[id^="project_"] a').click(function() {
    var id = $(this).closest('li').attr('id');

    $('.colOne').html(ajax_load).load('ajax/' + id + '.html');
});

虽然我会使用类并将data-属性添加到<li>元素:

<li class="project" data-filename="ajax/project_004.html">

并使用.data()函数:

$('#grid li.project a').click(function() {
    var filename = $(this).closest('li').data('filename');

    $('.colOne').html(ajax_load).load(filename);
});

答案 1 :(得分:1)

您想要对属性进行匹配:

$('ul#grid li[id^="project_"] a').click(function(){

    var id = $(this).closest('li').attr('id');

    $('.colOne').html(ajax_load).load('ajax/'+id+'.html');
});

[id^="project_"]has an attribute that starts with "project_"

虽然你最好不要创建一个类,然后使用数据属性来存储数字:

<li class="project" data-projnum="004">...

JS:

$('ul#grid li.project a').click(function(){ 

    var projnum = $(this).closest('li').data('projnum');

    $('.colOne').html(ajax_load).load('ajax/project_' + projnum + '.html');
});