2017-02-21 12 views
0

これは、addEventListenerをして​​、クラスの日」を変更するのは簡単です[3]などキャッチclassNameの数は、JavaScriptで

私は本当にのためにすべてのことのコードを記述する必要はありませんそれぞれどのようにクラスの注文番号を取得することができますか?[?] "クリックすると、changeDate()で使用できます。現在のコードの

パーツ:

var day = document.getElementsByClassName("day"); 
 

 
day[2].addEventListener("click", changeDate); 
 

 
function changeDate() { 
 
    console.log("hit"); 
 
}
<li class="day">1</li> 
 
<li class="day">2</li> 
 
<li class="day">3</li>

+0

可能性のある複製http://stackoverflow.com/questions/34910042/get-index-of-class –

答えて

0

すべて.day HTML要素にイベントハンドラをクリックして検索し、接続する標準のJavaScriptを使用して、次のコードを使用することができます。

<body> 
 
<li class="day">1</li> 
 
<li class="day">2</li> 
 
<li class="day">3</li> 
 
... 
 
</body> 
 

 
<script> 
 
var dayArray = []; 
 

 
window.onload = function(){ 
 

 
    dayArray = document.getElementsByClassName("day"); 
 
    
 
    for (var i = 0; i < dayArray.length; i++) { 
 
    dayArray[i].addEventListener('click', changeDate, false); 
 
    } 
 

 
}; 
 

 
function changeDate(evt){ 
 
    console.log(this); // Here 'this' refers to the clicked HTML element 
 
} 
 
</script>

この情報がお役に立てば幸いです。

+0

私が探していたものとまったく同じです、ありがとうございます。 :) – Levi

0

このように、リスナーを追加するためにそれらを介してクラスとループのすべてを取得します。

var days = document.getElementsByClassName('day'); 
for(var i = 0; i < days.length; i++){ 
    days[i].addEventListener('click', changeDate); 
} 

はEDIT:申し訳ありませんが、逃しました最後の行:変更日付機能には、次の情報を含めることができます。

function changeDate(){ 
    var day = this.textContent; 
}; 

クリックした要素内のテキストの変数dayが変更されました。

+0

これは質問には対処しません:*私はどのようにクラスの注文番号 "day [?]クリックしたときにchangeDate()* – Quentin

2

changeData()の機能では、thisにアクセスできます。関連付けられている<li>(クリックされたもの)なので、this.innerHTMLを使用して1日の数を取得します。あなたはこれを試みることができる@fauxserious答えに

-2

追加:

var days = document.getElementsByClassName('day'); 
for(var i = 0; i < days.length; i++){ 
    days[i].addEventListener('click', changeDate); 
} 

function changeDate(){ 
    console.log('Clicked day ' + this.innerHTML); 
} 
+0

でそれを使用することができます。これは 'changeDate' **を即座に呼び出し、その戻り値をイベントリスナーとして割り当てます(その戻り値はコードで'未定義 'イベントリスナーは一切添付しません)。 – Quentin

+0

が編集されました。今すぐ正しく動作するはずです – lenny

関連する問題