我确定这可能已经得到了回答,但我不太清楚我在问这个问题,如果你能指出我正确的方向,那将是非常苛刻的。
好的,所以我有一个功能,除了身份证号码之外的所有人都是相同的,最多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');
});
感谢您的帮助
答案 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');
});