2
4

6 に答える 6

4

onclick必要に応じて各要素に個別にではなく、要素の配列に属性を設定しています。また、使用後に定義showしています。

var elts = document.getElementsByTagName('a');
var show = function() { alert('hahahha'); }
for (var i = elts.length - 1; i >= 0; --i) {
    elts[i].onclick = show;
}

elts.length毎回テストするよりも、配列を後方に反復する方が効率的です。順方向に繰り返す必要がある場合は、配列の長さを変数に格納して効率を高めます。

于 2012-07-06T04:41:02.747 に答える
3

<a> tags次のように、 onclick イベントをすべて個別に割り当てる必要があります。

var s=document.getElementsByTagName('a');
var show = function(){
   alert('hahahha');
}
for (var i=0;i<s.length;i++)  
{  
 s[i].onclick = show;      
} 
于 2012-07-06T04:40:23.650 に答える
2

document.getElementsByTagName('a')配列を返すので、これを試してください:

    var arr = document.getElementsByTagName('a');
    for(var key in arr){
      arr[key].onclick = show;
    }

テストしていませんが、動作するはずです

于 2012-07-06T04:42:00.843 に答える
1

はい、javaスクリプトとjqueryの両方を使用して上記の問題を解決できます。

Javascript:

   var aLinks=document.getElementsByTagName('a'); // returns array of all <a> link objects

    //Function to be bind with link object
    var show = function(){
          alert("Now Show function has been binded...hahahhaha..!");
    }

    //Now we have to bind click event with each link object. 
    for(var i=0;i<aLink.length;i++){
       aLinks[i].onclick=show;
    }

すべてのリンクタグを任意のイベントにバインドする別の代替方法は、jQueryを使用することです。これは、この種のバインドの問題に最も簡単な方法を提供します。

ただし、そのためにはまず、jquery.js javascriptファイルを含める必要があります(最新バージョンを使用することをお勧めします)。

jQuery:

$(function(){
    $("a").click(function(e){
             alert("Now Show function has been binded...hahahhaha..!");
      });
});
于 2012-07-06T12:49:12.083 に答える
1

Jqueryを使用してみませんか。javascriptで最も簡単なソリューションになります。

以下のように使用できます

$("a").on("click", function(event){
    alert('hahahha');
});

このドキュメントを参照してください。Jquery1.7以降を使用できます。

于 2012-07-06T04:51:39.390 に答える