0

これはおそらくすでに回答されていると確信していますが、私が何を求めているのかよくわかりません。正しい方向に私を向けることができれば、それは非常に高く評価されます。

OKなので、ID番号以外はすべて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');
});

助けてくれてありがとう

4

2 に答える 2

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);
});
于 2013-02-28T23:36:00.307 に答える
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');
});
于 2013-02-28T23:36:18.413 に答える