1

getElmentByClassNameについて読んでいますが、どのブラウザでも機能しないようです。ID名を呼び出すと機能しますが、クラス名を呼び出せるようにしたいと思います。

Jqueryを含まない方法はありますか?

これは私が持っているものです、いくつかの助けがあれば恐ろしいでしょう。ありがとう。

<ul><li><button class="testButton">Test button</button></li></ul>

function OnButtonDown (button) {
alert("The class work")
}

function Init () {
    var className = "testButton";
    var button = document.getElementsByClassName(className);
    if (button.addEventListener) {  // all browsers except IE before version 9
        button.addEventListener ("mousedown", function () {
            OnButtonDown (button)
            }, false);
        button.addEventListener ("mouseup", function () {
            OnButtonUp (button)
            }, false);
    }
    else {
        if (button.attachEvent) {   // IE before version 9
            button.attachEvent ("onmousedown", function () {
                OnButtonDown (button)
                });
            button.attachEvent ("onmouseup", function () {
                OnButtonUp (button)
                });
        }
    }
}
4

2 に答える 2

3

getElementsByClassName()HTML要素のコレクションを返します。インデックスを使用してコレクションの要素にアクセスする必要があります。

button = document.getElementsByClassName(className)[0];
// your code here

要素が1つしかない場合は、の使用を検討してください.getElementById()

于 2013-02-02T11:12:41.530 に答える
1

@micnicが言ったこと。

ご参考までに。document.getElementById() それがうまくいかない場合は、次のように処理します。

var button = false;
var buttons = document.getElementsByClassName(className);
for (var i=0; i<buttons.length; i++) {
    button = buttons[i];
    // do stuff with button
}

ここでのデモ:http://jsfiddle.net/3pAeM/

于 2013-02-02T11:29:58.663 に答える