0

私は無料の punBB スクリプトを使用しており、ユーザー プロファイルへのリンクは/u1、など/u2です。/u3

誰かがカーソルをユーザーリンクに交差させたときにツールチップを作成しようとしていますが、最初にそれらのリンクにクラスを追加する必要があり、ユーザーごとに異なるため、方法がわかりません。

私が使用する単一のリンクの場合:

$(function() {

    jQuery('a').each(function() {
        if(jQuery(this).attr("href") == "/u1") {
            $(this).addClass('profile');
        }
    });

});
4

4 に答える 4

2

これを試して:

$('a[href^="u/"]').addClass('profile')
于 2012-09-22T15:04:21.300 に答える
1

indexOf を試して、/u1 を /usr1、/usr2 などのより具体的なものに変更します

$(function() {

jQuery('a').each(function() {
    if(jQuery(this).attr("href").indexOf("/usr") != -1) {
        $(this).addClass('profile');
    }
});

});
于 2012-09-22T15:04:00.057 に答える
1

他の回答で述べたように、そもそもクラスを HTML 出力に追加することはできないと思います。スクリプトを変更できる場合は、それを行うことをお勧めします。それ以外の場合は、上記の一般的なアプローチが機能しますが、これはパフォーマンスと精度のより良い組み合わせになると思います。

    $(function() {
        // Only fetch link elements with HREF beginning with "/u"
        $('a[href^="/u"]').each(function() {
            // For each of these elements, make sure its HREF actually matches the pattern
            // "/u" + <digits> before adding class
            if (/^\/u\d+$/.test($(this).attr('href'))) {
                $(this).addClass('profile');
            }
        });
    });
于 2012-09-22T15:14:52.853 に答える
0

正規表現を使用して、ユーザー リンクのパターン マッチを行うことができます

// pattern match /u999
var uregex = /\/u\d+/;

$(function() {
    jQuery('a').each(function() {
        // get href value
        var href = jQuery(this).attr("href");
        // test to see if it matches the user profile pattern
        if(uregex.test(href)) {
            $(this).addClass('profile');
        }
    });
});
于 2012-09-22T15:05:44.420 に答える