0

:regex ライブラリ (ここにあります) を使用して、P で始まり、その後に少なくとも 5 桁の ID を持つ要素を選択しています。次に、.attr を使用していくつかの属性を追加します。

$(document).ready(function() {
$('img:regex(id,P[0-9][0-9][0-9][0-9]+)').attr("onmouseover", "show\(this\,2\,0\)");
$('img:regex(id,P[0-9][0-9][0-9][0-9]+)').attr("onmouseout", "hide\(this\)");
});

これは Firefox では機能しますが、Chrome では機能しません。(IE はまだテストしていません。)

代わりに [0].setAttribute を使用してみましたが、ある程度は機能しますが、何らかの理由で正規表現の最初のインスタンスのみが選択されます。

より互換性のあるソリューションを持っている人はいますか?

4

6 に答える 6

4

そのプラグインが何をするにせよ、ひどく遅く見えます。すべての画像ノードを選択してから jQuery .filter()helpでフィルタリングすることをお勧めします。これはより高速である必要があり、さらに読みやすいと思います。次のようになります。

$('img').filter(function(index) {
    return this.id.charAt(0) === 'P' && !isNaN(this.id.slice(1,6));
}).hover(function() {
     $(this).show();
}, function() {
     $(this).hide();
});

デモ: http://www.jsfiddle.net/snMCM/

パフォーマンス ベンチマーク: http://jsperf.com/regex-vs-jquery-filter

于 2011-02-07T21:26:51.970 に答える
3

regEx はさておき、.hover()関数ではなく jQuery 関数を使用する必要があり.attr()ます。.hover()関数とによって提供される正規表現を組み込みましたkirilloid

$(document).ready(function() {
    $('img:regex(id, P\d{5,})').hover(function(){
        show( $(this), 2, 0);
    }, function(){
        hide( $(this) );
    });
});
于 2011-02-07T21:22:29.557 に答える
0

ライブラリfilter()の代わりに使用してみませんか?:regexこれはすべてのブラウザで機能するはずです。例えば

var $imgs = $('img').filter(function(){return this.id.match(/^P\d\d\d\d\d/);});
$imgs.attr("onmouse.......
于 2011-02-07T21:41:22.150 に答える
0

これを試してください:(すべてのブラウザで動作します)

        $(window).load(function () {
        //your script or function

                    $("your_html_tag").attr({
                            width : "your-width",
                            height : "your-height",
                            alt: "Online Teacher"
                        });
        });

それよりも

        $(document).ready(function () {
       //your script or function

                    $("your_html_tag").attr({
                            width : "your-width",
                            height : "your-height",
                            alt: "Online Teacher"
                        });
        });
于 2011-05-14T06:43:34.337 に答える
0

あなたの質問に本当に答えていないことはわかっていますが...

選択する要素にクラスを追加します。

于 2011-02-07T21:30:32.277 に答える
0

attr を使用して JavaScript ハンドラーをアタッチできるかどうかはわかりませんが、それは非常に長い方法のように思えます。これを試してみてください:

$('img:regex(id,P[0-9][0-9][0-9][0-9]+)').hover(function() {
    show(this,2,0);
},function() {
    hide(this);
}); 
于 2011-02-07T21:24:04.120 に答える