0

私はプログラミングが初めてで、クリックしたときにオブジェクトの ID またはクラス名を表示するカスタマイズされたアラートを作成する方法を考えていました。私のサイトには 8 種類の動物の写真があり、動物の 1 つをクリックするたびに「これは (動物の名前) です」というアラートが表示されるようにしたいと考えています。以下の JavaScript コードが機能しないのはなぜですか?

「parama」の代わりに「this」を使用する必要がありますか? 関数クリックのパラメーターを使用するかどうかがわかりません。

var images = new Array()
images[0] = "bison"
images[1] = "frog"

function clicky(parama){
    for (entry in images){
        if (parama.attributes["name"].value === images[entry]){
            $(parama).onClick(alert("This is a" + parama.attributes["name"].value));
        } else {
            $(parama).onClick(alert("dang it");
        }
    }
}
4

2 に答える 2

0

titleJS配列の代わりに、画像にor属性を使用することをお勧めします。これはalt、SEOに適したセマンティックです。altHTMLを有効にするために画像に必要なことは言うまでもありません-デモ

var images = document.getElementsByTagName("img");

for ( var i = 0, count = images.length; i < count; i++ ) {
    images[i].addEventListener("click", function() {
        alert( this.getAttribute("alt") );
    });
}

アップデート

jQueryを使用するために開いた場合-DEMO

$("img").on("click", function() {
    alert( $(this).prop("alt") );
});​

を使用することもできますが、代わりに、さまざまな種類のイベントリスナーを要素にアタッチ.click()するために使用することをお勧めします。.on()jQueryは、プロパティを取得するための省略形も提供します-.prop()

于 2012-08-13T20:47:42.187 に答える
0

両方の回答を組み合わせて使用​​することで、元々持っていたよりもはるかに少ないコードでそれを行う方法を見つけました。見てみな!(画像はすべて「pic」のクラスを持っていました)

$('.pic').click(function(){
    alert("This is a " + this.getAttribute('alt'))
});
于 2012-08-13T21:48:14.363 に答える