3

デモ
HTMLコード は次のとおりです

<div id="me"></div>

<a id="ok" href="">OK</a>

jqueryコード:

var tr = '';
for (var i = 0; i < 100; i++) {
    tr += '<tr><td>a' + i + '</td></tr>';
}
var table = '<table>';
table += tr;
table += '</table>';
$('#me').append(table);

$('td').each(function(index, value) {
    if ($(this).text() == 'a50') {
        $(this).addClass('yellow').attr('id', 'search');
    }
});    
$('#ok').attr('href','#search');
$('#ok').trigger('click');

TO DO:各 td のテーブルにデータがあります。データを検索しようとしています。検索データが見つかった場合、属性クラスが黄色、ID が検索として td が追加されます。アンカータグがあります。アンカータグはシミュレートされます。クリックすると、ウィンドウがその場所にスクロールされます。アンカータグへの内部リンクも追加しました。

ここで、アンカータグをクリックして、ページが href の場所に移動するようにします

問題 ページが内部リンクに移動していません。アンカー タグがクリックをトリガーしないという問題はありますか? しかし、マウスでアンカータグをクリックするとナビゲートされます

4

3 に答える 3

1

最後の行を次のように置き換えます

window.location.href='#search​​';

私のために働きます:)

于 2012-06-15T04:40:09.373 に答える
1

クリックとナビゲートには違いがあります。したがって、アンカータグでhrefの場合、ナビゲートに似ています このフィドルを試してください

var tr = '';
for (var i = 0; i < 100; i++) {
    tr += '<tr><td>a' + i + '</td></tr>';
}
var table = '<table>';
table += tr;
table += '</table>';
$('#me').append(table);

$('td').each(function(index, value) {
    if ($(this).text() == 'a35') {
        $(this).addClass('yellow').attr('id', 'search');
    }
});

location.href='#search';
于 2012-06-15T04:42:05.723 に答える
1

を使うべきだと思いますwindow.location.href。次のことを試してください。

// define this click event for #ok

$('#ok').on('click', function() {
    window.location.href = this.href
});

$('td').each(function(index, value) {
    if ($(this).text() == 'a50') {
        $(this).addClass('yellow').attr('id', 'search');
    }
});
$('#ok').attr('href', '#search');
$('#ok').click(); // trigger the click

デモ

于 2012-06-15T05:06:18.810 に答える